From b9ded7ccf906c018d7403dea87ba31832604f0c4 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Sat, 4 Mar 2017 11:47:49 +0000 Subject: [PATCH] New upstream version 3.6.1~20170228 --- CMake/3rdparty.cmake | 34 +- CMake/DCMTKConfig.cmake.in | 7 - CMake/FindICU.cmake | 690 +++ CMake/GenerateCMakeExports.cmake | 10 +- CMake/GenerateDCMTKConfigure.cmake | 44 + CMake/dcmtkPrepare.cmake | 19 +- CMake/osconfig.h.in | 14 + CMakeLists.txt | 14 +- COPYRIGHT | 6 +- CREDITS | 4 +- Makefile | 72 +- README | 4 +- VERSION | 2 +- config/Makefile.def.in | 9 +- config/arith.cc | 12 + config/configure | 328 +- config/configure.in | 157 +- config/docs/envvars.txt | 29 +- config/docs/macros.txt | 61 +- config/include/dcmtk/config/osconfig.h.in | 14 + config/modules | 2 +- config/rootconf | 2 +- dcmdata/apps/CMakeLists.txt | 4 +- dcmdata/apps/Makefile.dep | 93 +- dcmdata/apps/Makefile.in | 8 +- dcmdata/apps/dcm2json.cc | 278 ++ dcmdata/apps/dcm2xml.cc | 16 +- dcmdata/apps/dcmconv.cc | 75 +- dcmdata/apps/dcmdump.cc | 56 +- dcmdata/apps/dcmgpdir.cc | 24 +- dcmdata/apps/dump2dcm.cc | 10 +- dcmdata/apps/xml2dcm.cc | 10 +- dcmdata/data/dicom.dic | 109 +- dcmdata/docs/dcm2json.man | 363 ++ dcmdata/docs/dcm2xml.man | 5 +- dcmdata/docs/dcmconv.man | 29 +- dcmdata/docs/dcmdata.dox | 1 + dcmdata/docs/dcmdump.man | 29 +- dcmdata/include/dcmtk/dcmdata/dcbytstr.h | 36 +- dcmdata/include/dcmtk/dcmdata/dcchrstr.h | 28 +- dcmdata/include/dcmtk/dcmdata/dccodec.h | 4 +- dcmdata/include/dcmtk/dcmdata/dcdatset.h | 37 +- dcmdata/include/dcmtk/dcmdata/dcddirif.h | 1 + dcmdata/include/dcmtk/dcmdata/dcdeftag.h | 99 +- dcmdata/include/dcmtk/dcmdata/dcdirrec.h | 22 +- dcmdata/include/dcmtk/dcmdata/dcelem.h | 26 +- dcmdata/include/dcmtk/dcmdata/dcerror.h | 11 +- dcmdata/include/dcmtk/dcmdata/dcfilefo.h | 47 +- dcmdata/include/dcmtk/dcmdata/dcitem.h | 115 +- dcmdata/include/dcmtk/dcmdata/dcjson.h | 407 ++ dcmdata/include/dcmtk/dcmdata/dcmatch.h | 246 + dcmdata/include/dcmtk/dcmdata/dcmetinf.h | 19 +- dcmdata/include/dcmtk/dcmdata/dcobject.h | 38 +- dcmdata/include/dcmtk/dcmdata/dcovlay.h | 3 +- dcmdata/include/dcmtk/dcmdata/dcpixseq.h | 23 +- dcmdata/include/dcmtk/dcmdata/dcpxitem.h | 3 +- dcmdata/include/dcmtk/dcmdata/dcsequen.h | 41 +- dcmdata/include/dcmtk/dcmdata/dcspchrs.h | 157 +- dcmdata/include/dcmtk/dcmdata/dctypes.h | 17 +- dcmdata/include/dcmtk/dcmdata/dcuid.h | 54 +- dcmdata/include/dcmtk/dcmdata/dcvr.h | 53 +- dcmdata/include/dcmtk/dcmdata/dcvrat.h | 38 +- dcmdata/include/dcmtk/dcmdata/dcvrda.h | 52 +- dcmdata/include/dcmtk/dcmdata/dcvrds.h | 13 +- dcmdata/include/dcmtk/dcmdata/dcvrdt.h | 27 +- dcmdata/include/dcmtk/dcmdata/dcvrfd.h | 30 +- dcmdata/include/dcmtk/dcmdata/dcvrfl.h | 29 +- dcmdata/include/dcmtk/dcmdata/dcvris.h | 14 +- dcmdata/include/dcmtk/dcmdata/dcvrlo.h | 18 + dcmdata/include/dcmtk/dcmdata/dcvrobow.h | 39 +- dcmdata/include/dcmtk/dcmdata/dcvrod.h | 14 +- dcmdata/include/dcmtk/dcmdata/dcvrof.h | 14 +- dcmdata/include/dcmtk/dcmdata/dcvrol.h | 38 +- dcmdata/include/dcmtk/dcmdata/dcvrpn.h | 23 + dcmdata/include/dcmtk/dcmdata/dcvrpobw.h | 6 +- dcmdata/include/dcmtk/dcmdata/dcvrsh.h | 18 + dcmdata/include/dcmtk/dcmdata/dcvrsl.h | 27 +- dcmdata/include/dcmtk/dcmdata/dcvrss.h | 27 +- dcmdata/include/dcmtk/dcmdata/dcvrtm.h | 130 +- dcmdata/include/dcmtk/dcmdata/dcvruc.h | 1 + dcmdata/include/dcmtk/dcmdata/dcvrul.h | 28 +- dcmdata/include/dcmtk/dcmdata/dcvrulup.h | 28 +- dcmdata/include/dcmtk/dcmdata/dcvrur.h | 3 +- dcmdata/include/dcmtk/dcmdata/dcvrus.h | 27 +- dcmdata/include/dcmtk/dcmdata/dcvrut.h | 1 + dcmdata/include/dcmtk/dcmdata/dcxfer.h | 42 +- .../include/dcmtk/dcmdata/libi2d/i2doutpl.h | 10 +- dcmdata/libi2d/Makefile.dep | 128 +- dcmdata/libi2d/i2d.cc | 4 +- dcmdata/libi2d/i2dbmps.cc | 10 +- dcmdata/libsrc/CMakeLists.txt | 6 +- dcmdata/libsrc/Makefile.dep | 269 +- dcmdata/libsrc/Makefile.in | 5 +- dcmdata/libsrc/dcbytstr.cc | 48 +- dcmdata/libsrc/dcchrstr.cc | 69 +- dcmdata/libsrc/dcdatset.cc | 91 +- dcmdata/libsrc/dcddirif.cc | 10 +- dcmdata/libsrc/dcdicdir.cc | 42 +- dcmdata/libsrc/dcdictbi.cc | 370 +- dcmdata/libsrc/dcdirrec.cc | 30 +- dcmdata/libsrc/dcelem.cc | 96 +- dcmdata/libsrc/dcerror.cc | 6 +- dcmdata/libsrc/dcfilefo.cc | 62 +- dcmdata/libsrc/dcitem.cc | 637 ++- dcmdata/libsrc/dcjson.cc | 281 ++ dcmdata/libsrc/dcmatch.cc | 327 ++ dcmdata/libsrc/dcmetinf.cc | 25 + dcmdata/libsrc/dcobject.cc | 18 +- dcmdata/libsrc/dcpath.cc | 4 +- dcmdata/libsrc/dcpixel.cc | 11 +- dcmdata/libsrc/dcpixseq.cc | 11 +- dcmdata/libsrc/dcsequen.cc | 40 +- dcmdata/libsrc/dcspchrs.cc | 265 +- dcmdata/libsrc/dcstack.cc | 6 +- dcmdata/libsrc/dcswap.cc | 11 +- dcmdata/libsrc/dctypes.cc | 8 +- dcmdata/libsrc/dcuid.cc | 122 +- dcmdata/libsrc/dcvr.cc | 135 +- dcmdata/libsrc/dcvrat.cc | 49 +- dcmdata/libsrc/dcvrda.cc | 71 +- dcmdata/libsrc/dcvrds.cc | 55 +- dcmdata/libsrc/dcvrdt.cc | 79 +- dcmdata/libsrc/dcvrfd.cc | 7 +- dcmdata/libsrc/dcvrfl.cc | 7 +- dcmdata/libsrc/dcvris.cc | 55 +- dcmdata/libsrc/dcvrlo.cc | 48 +- dcmdata/libsrc/dcvrobow.cc | 49 +- dcmdata/libsrc/dcvrod.cc | 36 + dcmdata/libsrc/dcvrof.cc | 36 + dcmdata/libsrc/dcvrol.cc | 44 +- dcmdata/libsrc/dcvrpn.cc | 263 +- dcmdata/libsrc/dcvrsh.cc | 48 +- dcmdata/libsrc/dcvrsl.cc | 7 +- dcmdata/libsrc/dcvrss.cc | 7 +- dcmdata/libsrc/dcvrtm.cc | 167 +- dcmdata/libsrc/dcvrul.cc | 8 +- dcmdata/libsrc/dcvrulup.cc | 9 +- dcmdata/libsrc/dcvrus.cc | 8 +- dcmdata/libsrc/dcxfer.cc | 167 +- dcmdata/tests/CMakeLists.txt | 2 +- dcmdata/tests/Makefile.dep | 49 +- dcmdata/tests/Makefile.in | 4 +- dcmdata/tests/tests.cc | 1 + dcmdata/tests/tmatch.cc | 124 + dcmdata/tests/tspchrs.cc | 58 +- dcmfg/include/dcmtk/dcmfg/fgderimg.h | 69 +- dcmfg/include/dcmtk/dcmfg/fgfracon.h | 4 +- dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h | 157 + .../dcmtk/dcmfg/fgidentpixeltransform.h | 174 + dcmfg/include/dcmtk/dcmfg/fginterface.h | 18 +- .../dcmtk/dcmfg/fgparametricmapframetype.h | 124 + .../dcmtk/dcmfg/fgrealworldvaluemapping.h | 61 +- dcmfg/include/dcmtk/dcmfg/fgtypes.h | 6 +- dcmfg/include/dcmtk/dcmfg/stack.h | 4 - dcmfg/libsrc/CMakeLists.txt | 3 + dcmfg/libsrc/Makefile.dep | 415 +- dcmfg/libsrc/fg.cc | 5 +- dcmfg/libsrc/fgbase.cc | 1 - dcmfg/libsrc/fgderimg.cc | 108 +- dcmfg/libsrc/fgfact.cc | 14 +- dcmfg/libsrc/fgfracon.cc | 6 +- dcmfg/libsrc/fgframeanatomy.cc | 203 + dcmfg/libsrc/fgframevoilut.cc | 2 +- dcmfg/libsrc/fgidentpixeltransform.cc | 229 + dcmfg/libsrc/fgimagedatatype.cc | 15 +- dcmfg/libsrc/fginterface.cc | 40 +- dcmfg/libsrc/fgparametricmapframetype.cc | 145 + dcmfg/libsrc/fgpixmsr.cc | 2 +- dcmfg/libsrc/fgplanor.cc | 2 +- dcmfg/libsrc/fgplanorvol.cc | 2 +- dcmfg/libsrc/fgplanpo.cc | 2 +- dcmfg/libsrc/fgplanposvol.cc | 2 +- dcmfg/libsrc/fgrealworldvaluemapping.cc | 99 +- dcmfg/libsrc/fgseg.cc | 2 +- dcmfg/libsrc/fgtypes.cc | 10 +- dcmfg/libsrc/fgusimagedescription.cc | 2 +- dcmimage/apps/Makefile.in | 2 +- dcmimage/apps/dcm2pnm.cc | 10 +- dcmimage/include/dcmtk/dcmimage/dicoimg.h | 2 + dcmimgle/apps/Makefile.in | 2 +- dcmimgle/include/dcmtk/dcmimgle/dcmimage.h | 2 + dcmimgle/include/dcmtk/dcmimgle/diimage.h | 4 +- dcmimgle/include/dcmtk/dcmimgle/diinpxt.h | 5 +- dcmimgle/include/dcmtk/dcmimgle/dimoimg.h | 2 + dcmimgle/include/dcmtk/dcmimgle/dimomod.h | 4 +- dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h | 33 +- dcmimgle/libsrc/dimoimg.cc | 2 +- dcmiod/include/dcmtk/dcmiod/cielabutil.h | 2 +- dcmiod/include/dcmtk/dcmiod/iodcommn.h | 53 +- .../dcmtk/dcmiod/iodcontentitemmacro.h | 478 ++ dcmiod/include/dcmtk/dcmiod/iodimage.h | 257 +- dcmiod/include/dcmtk/dcmiod/iodmacro.h | 187 +- dcmiod/include/dcmtk/dcmiod/iodreferences.h | 8 + dcmiod/include/dcmtk/dcmiod/iodutil.h | 49 +- dcmiod/include/dcmtk/dcmiod/modbase.h | 37 +- .../dcmtk/dcmiod/modcommoninstanceref.h | 8 +- dcmiod/include/dcmtk/dcmiod/modenhequipment.h | 51 +- dcmiod/include/dcmtk/dcmiod/modequipment.h | 47 +- .../dcmtk/dcmiod/modfloatingpointimagepixel.h | 246 + dcmiod/include/dcmtk/dcmiod/modfor.h | 9 +- dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h | 2 +- dcmiod/include/dcmtk/dcmiod/modimagepixel.h | 108 +- .../include/dcmtk/dcmiod/modimagepixelbase.h | 168 + .../dcmtk/dcmiod/modimagepixelvariant.h | 281 ++ .../dcmtk/dcmiod/modmultiframedimension.h | 3 +- .../include/dcmtk/dcmiod/modsynchronisation.h | 29 +- dcmiod/libsrc/CMakeLists.txt | 5 +- dcmiod/libsrc/Makefile.dep | 279 +- dcmiod/libsrc/Makefile.in | 13 +- dcmiod/libsrc/cielabutil.cc | 8 +- dcmiod/libsrc/iodcommn.cc | 77 +- dcmiod/libsrc/iodcontentitemmacro.cc | 800 +++ dcmiod/libsrc/iodimage.cc | 89 - dcmiod/libsrc/iodmacro.cc | 372 +- dcmiod/libsrc/iodutil.cc | 19 +- dcmiod/libsrc/modbase.cc | 52 +- dcmiod/libsrc/modcommoninstanceref.cc | 14 +- dcmiod/libsrc/modenhequipment.cc | 10 +- dcmiod/libsrc/modenhusimage.cc | 4 +- dcmiod/libsrc/modequipment.cc | 17 +- dcmiod/libsrc/modfloatingpointimagepixel.cc | 260 + dcmiod/libsrc/modfor.cc | 23 +- dcmiod/libsrc/modimagepixel.cc | 192 +- dcmiod/libsrc/modimagepixelbase.cc | 138 + dcmiod/libsrc/modmultiframedimension.cc | 37 +- dcmiod/libsrc/modmultiframefg.cc | 2 - dcmiod/libsrc/modsynchronization.cc | 57 +- dcmiod/libsrc/modusfor.cc | 11 +- dcmiod/tests/CMakeLists.txt | 2 +- dcmiod/tests/Makefile.dep | 145 + dcmiod/tests/Makefile.in | 6 +- dcmiod/tests/tcielabutil.cc | 4 +- dcmiod/tests/tests.cc | 1 + dcmiod/tests/timagepixel.cc | 34 + dcmjpeg/apps/Makefile.in | 2 +- dcmjpeg/apps/dcmdjpeg.cc | 8 +- dcmjpeg/docs/dcmdjpeg.man | 11 +- dcmjpeg/include/dcmtk/dcmjpeg/djcparam.h | 18 +- dcmjpeg/include/dcmtk/dcmjpeg/djdecode.h | 7 +- dcmjpeg/libijg12/jdmarker.c | 20 +- dcmjpeg/libijg12/jpeglib12.h | 8 + dcmjpeg/libijg16/jpeglib16.h | 5 + dcmjpeg/libijg8/jcapimin.c | 2 + dcmjpeg/libijg8/jcmarker.c | 2 +- dcmjpeg/libijg8/jpeglib8.h | 8 + dcmjpeg/libsrc/ddpiimpl.cc | 4 +- dcmjpeg/libsrc/djcodecd.cc | 10 + dcmjpeg/libsrc/djcodece.cc | 12 +- dcmjpeg/libsrc/djcparam.cc | 5 +- dcmjpeg/libsrc/djdecode.cc | 15 +- dcmjpeg/libsrc/djeijg8.cc | 1 + dcmjpeg/libsrc/djencode.cc | 3 +- dcmjpls/apps/Makefile.in | 2 +- dcmjpls/docs/License.txt | 11 + dcmjpls/docs/dcmjpls.dox | 14 +- dcmjpls/libcharls/decodstr.h | 70 +- dcmjpls/libcharls/encodstr.h | 65 +- dcmjpls/libcharls/header.cc | 22 +- dcmjpls/libcharls/intrface.cc | 61 +- dcmjpls/libcharls/intrface.h | 4 +- dcmjpls/libcharls/pubtypes.h | 3 +- dcmjpls/libcharls/scan.h | 33 +- dcmjpls/libcharls/streams.h | 65 +- dcmjpls/libcharls/util.h | 1 + dcmjpls/libsrc/djcodece.cc | 38 +- dcmnet/apps/Makefile.dep | 8 +- dcmnet/apps/Makefile.in | 2 +- dcmnet/apps/echoscu.cc | 12 +- dcmnet/apps/getscu.cc | 10 +- dcmnet/apps/movescu.cc | 148 +- dcmnet/apps/storescp.cc | 115 +- dcmnet/apps/storescu.cc | 66 +- dcmnet/docs/cptscp.dox | 1 + dcmnet/docs/dcmnet.dox | 6 +- dcmnet/docs/dcmrecv.man | 50 +- dcmnet/docs/dcmsend.man | 48 +- dcmnet/docs/echoscu.man | 37 +- dcmnet/docs/findscu.man | 32 +- dcmnet/docs/getscu.man | 54 +- dcmnet/docs/movescu.man | 84 +- dcmnet/docs/storescp.man | 64 +- dcmnet/docs/storescu.man | 53 +- dcmnet/docs/termscu.man | 26 +- dcmnet/etc/storescp.cfg | 204 +- dcmnet/etc/storescu.cfg | 3 + dcmnet/include/dcmtk/dcmnet/assoc.h | 16 +- dcmnet/include/dcmtk/dcmnet/cond.h | 5 +- dcmnet/include/dcmtk/dcmnet/dccfpcmp.h | 14 +- dcmnet/include/dcmtk/dcmnet/dcmtrans.h | 31 +- dcmnet/include/dcmtk/dcmnet/dcompat.h | 21 +- dcmnet/include/dcmtk/dcmnet/dcuserid.h | 154 +- dcmnet/include/dcmtk/dcmnet/dul.h | 16 +- dcmnet/include/dcmtk/dcmnet/scp.h | 49 +- dcmnet/include/dcmtk/dcmnet/scpcfg.h | 5 +- dcmnet/libsrc/Makefile.dep | 12 +- dcmnet/libsrc/assoc.cc | 20 +- dcmnet/libsrc/cond.cc | 4 +- dcmnet/libsrc/dccfpcmp.cc | 22 +- dcmnet/libsrc/dcmtrans.cc | 45 +- dcmnet/libsrc/dcompat.cc | 62 +- dcmnet/libsrc/dcuserid.cc | 36 +- dcmnet/libsrc/dimcmd.cc | 10 +- dcmnet/libsrc/dimse.cc | 8 +- dcmnet/libsrc/diutil.cc | 8 +- dcmnet/libsrc/dstorscu.cc | 4 +- dcmnet/libsrc/dul.cc | 93 +- dcmnet/libsrc/dulconst.cc | 8 +- dcmnet/libsrc/dulfsm.cc | 110 +- dcmnet/libsrc/dulparse.cc | 9 +- dcmnet/libsrc/scp.cc | 107 +- dcmnet/tests/CMakeLists.txt | 2 +- dcmnet/tests/Makefile.dep | 127 + dcmnet/tests/Makefile.in | 4 +- dcmnet/tests/tests.cc | 7 +- dcmnet/tests/tscuscp.cc | 340 ++ dcmpmap/CMakeLists.txt | 10 + dcmpmap/Makefile.in | 86 + dcmpmap/configure | 53 + dcmpmap/data/Makefile.in | 23 + dcmpmap/docs/Makefile.in | 23 + dcmpmap/docs/dcmpmap.dox | 527 ++ dcmpmap/etc/Makefile.in | 23 + dcmpmap/include/CMakeLists.txt | 2 + dcmpmap/include/Makefile.in | 27 + dcmpmap/include/dcmtk/dcmpmap/dpmdef.h | 37 + .../dcmtk/dcmpmap/dpmmodparametricmapimage.h | 304 ++ .../dcmtk/dcmpmap/dpmmodparametricmapseries.h | 133 + .../dcmtk/dcmpmap/dpmparametricmapbase.h | 249 + .../dcmtk/dcmpmap/dpmparametricmapiod.h | 306 ++ dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h | 137 + dcmpmap/libsrc/CMakeLists.txt | 4 + dcmpmap/libsrc/Makefile.dep | 673 +++ dcmpmap/libsrc/Makefile.in | 56 + dcmpmap/libsrc/dpmmodparametricmapimage.cc | 289 ++ dcmpmap/libsrc/dpmmodparametricmapseries.cc | 124 + dcmpmap/libsrc/dpmparametricmapbase.cc | 227 + dcmpmap/libsrc/dpmparametricmapiod.cc | 1064 ++++ dcmpmap/libsrc/dpmtypes.cc | 111 + dcmpmap/tests/Makefile.in | 29 + dcmpstat/apps/Makefile.dep | 20 + dcmpstat/apps/Makefile.in | 6 +- dcmpstat/apps/dcmprscu.cc | 10 +- dcmpstat/apps/dcmpsrcv.cc | 4 +- dcmpstat/docs/dcmp2pgm.man | 18 +- dcmpstat/libsrc/Makefile.dep | 16 +- dcmpstat/libsrc/dviface.cc | 42 +- dcmpstat/libsrc/dvpshlp.cc | 2 +- dcmpstat/libsrc/dvpstat.cc | 6 +- dcmpstat/tests/Makefile.dep | 2 +- dcmpstat/tests/Makefile.in | 2 +- dcmqrdb/apps/Makefile.dep | 6 +- dcmqrdb/apps/Makefile.in | 2 +- dcmqrdb/apps/dcmqrscp.cc | 95 +- dcmqrdb/docs/dcmqrcnf.txt | 32 +- dcmqrdb/docs/dcmqrscp.man | 74 +- dcmqrdb/etc/dcmqrscp.cfg | 10 + dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcbf.h | 10 +- dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcnf.h | 89 +- dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h | 7 +- dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h | 79 +- dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h | 113 +- dcmqrdb/include/dcmtk/dcmqrdb/dcmqrtis.h | 3 +- dcmqrdb/libsrc/Makefile.dep | 32 +- dcmqrdb/libsrc/dcmqrcbf.cc | 4 +- dcmqrdb/libsrc/dcmqrcbm.cc | 17 +- dcmqrdb/libsrc/dcmqrcnf.cc | 105 +- dcmqrdb/libsrc/dcmqrdbi.cc | 957 ++-- dcmqrdb/libsrc/dcmqrptb.cc | 4 +- dcmqrdb/libsrc/dcmqrsrv.cc | 36 +- dcmqrdb/libsrc/dcmqrtis.cc | 10 +- dcmrt/apps/Makefile.dep | 44 +- dcmrt/apps/Makefile.in | 2 +- dcmrt/include/dcmtk/dcmrt/drmimage.h | 15 +- dcmrt/include/dcmtk/dcmrt/drtdose.h | 453 +- dcmrt/include/dcmtk/dcmrt/drtimage.h | 519 +- dcmrt/include/dcmtk/dcmrt/drtionpl.h | 509 +- dcmrt/include/dcmtk/dcmrt/drtiontr.h | 493 +- dcmrt/include/dcmtk/dcmrt/drtplan.h | 509 +- dcmrt/include/dcmtk/dcmrt/drtstrct.h | 493 +- dcmrt/include/dcmtk/dcmrt/drttreat.h | 493 +- dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtads.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtafs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtags.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtas1.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtas5.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtas6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtas7.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtass.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbads.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbas.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h | 42 +- dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtccs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtces.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h | 352 ++ dcmrt/include/dcmtk/dcmrt/seq/drtchs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcims.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtcos.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtcss.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h | 368 ++ dcmrt/include/dcmtk/dcmrt/seq/drtddps.h | 368 ++ dcmrt/include/dcmtk/dcmrt/seq/drtdias.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtds.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtdss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drteas.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtecs.h | 174 +- dcmrt/include/dcmtk/dcmrt/seq/drtes.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtfds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtfes.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtfms.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtgas.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h | 369 ++ dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtiais.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtians.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtibls.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtibs.h | 77 +- dcmrt/include/dcmtk/dcmrt/seq/drticpds.h | 108 +- dcmrt/include/dcmtk/dcmrt/seq/drticps.h | 69 +- dcmrt/include/dcmtk/dcmrt/seq/drtics.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtiis.h | 48 +- dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtircs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtitts.h | 122 +- dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtiws.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtmas.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtmls.h | 36 +- dcmrt/include/dcmtk/dcmrt/seq/drtmps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtmris.h | 336 ++ dcmrt/include/dcmtk/dcmrt/seq/drtmss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtoas.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtois.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtopis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtos.h | 63 +- dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h | 45 +- dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h | 432 ++ dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtpics.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtporis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtpss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtqds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtras.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h | 85 +- dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h | 85 +- dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrics.h | 61 +- dcmrt/include/dcmtk/dcmrt/seq/drtrims.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtris.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrms.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrros.h | 45 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrses.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrws.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h | 66 +- dcmrt/include/dcmtk/dcmrt/seq/drtscris.h | 30 +- .../dcmtk/dcmrt/seq/{drtarics.h => drtscs.h} | 79 +- dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtsds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtshds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtsins.h | 337 ++ dcmrt/include/dcmtk/dcmrt/seq/drtsis.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtsns.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h | 46 +- dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h | 337 ++ dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h | 545 +++ dcmrt/include/dcmtk/dcmrt/seq/drtss.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h | 545 +++ dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtsss.h | 337 ++ dcmrt/include/dcmtk/dcmrt/seq/drttms0.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drttms9.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drttscds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h | 77 +- dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drttts.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtudis.h | 320 ++ dcmrt/include/dcmtk/dcmrt/seq/drtvls.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtwps.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtws.h | 30 +- dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h | 30 +- dcmrt/libsrc/CMakeLists.txt | 2 +- dcmrt/libsrc/Makefile.dep | 3857 ++++++++++----- dcmrt/libsrc/Makefile.in | 59 +- dcmrt/libsrc/drmimage.cc | 4 +- dcmrt/libsrc/drtaadcs.cc | 61 +- dcmrt/libsrc/drtadcs.cc | 61 +- dcmrt/libsrc/drtads.cc | 61 +- dcmrt/libsrc/drtafs.cc | 32 +- dcmrt/libsrc/drtags.cc | 32 +- dcmrt/libsrc/drtajcs.cc | 61 +- dcmrt/libsrc/drtas1.cc | 32 +- dcmrt/libsrc/drtas5.cc | 32 +- dcmrt/libsrc/drtas6.cc | 32 +- dcmrt/libsrc/drtas7.cc | 32 +- dcmrt/libsrc/drtass.cc | 32 +- dcmrt/libsrc/drtbads.cc | 32 +- dcmrt/libsrc/drtbas.cc | 61 +- dcmrt/libsrc/drtbcps.cc | 32 +- dcmrt/libsrc/drtbl2.cc | 65 +- dcmrt/libsrc/drtbl5.cc | 65 +- dcmrt/libsrc/drtbldls.cc | 32 +- dcmrt/libsrc/drtbldps.cc | 32 +- dcmrt/libsrc/drtblds1.cc | 32 +- dcmrt/libsrc/drtblds5.cc | 32 +- dcmrt/libsrc/drtblds6.cc | 32 +- dcmrt/libsrc/drtbldts.cc | 32 +- dcmrt/libsrc/drtbrcss.cc | 61 +- dcmrt/libsrc/drtbrdrs.cc | 32 +- dcmrt/libsrc/drtbrs.cc | 32 +- dcmrt/libsrc/drtbs.cc | 32 +- dcmrt/libsrc/drtbss.cc | 32 +- dcmrt/libsrc/drtbvcps.cc | 55 +- dcmrt/libsrc/drtcbars.cc | 61 +- dcmrt/libsrc/drtccs.cc | 61 +- dcmrt/libsrc/drtcctus.cc | 32 +- dcmrt/libsrc/drtcdrs.cc | 32 +- dcmrt/libsrc/drtces.cc | 32 +- dcmrt/libsrc/drtcgis.cc | 631 +++ dcmrt/libsrc/drtchs.cc | 32 +- dcmrt/libsrc/drtcims.cc | 32 +- dcmrt/libsrc/drtcis.cc | 32 +- dcmrt/libsrc/drtcncs.cc | 61 +- dcmrt/libsrc/drtcos.cc | 65 +- dcmrt/libsrc/drtcpas.cc | 32 +- dcmrt/libsrc/drtcpis.cc | 32 +- dcmrt/libsrc/drtcps.cc | 32 +- dcmrt/libsrc/drtcs.cc | 32 +- dcmrt/libsrc/drtcsas.cc | 32 +- dcmrt/libsrc/drtcshs.cc | 32 +- dcmrt/libsrc/drtcsis.cc | 32 +- dcmrt/libsrc/drtcss.cc | 61 +- dcmrt/libsrc/drtdcs.cc | 61 +- dcmrt/libsrc/drtdddps.cc | 644 +++ dcmrt/libsrc/drtddps.cc | 644 +++ dcmrt/libsrc/drtdias.cc | 32 +- dcmrt/libsrc/drtdimcs.cc | 61 +- dcmrt/libsrc/drtdimrs.cc | 32 +- dcmrt/libsrc/drtdirs.cc | 32 +- dcmrt/libsrc/drtdose.cc | 473 +- dcmrt/libsrc/drtdrs.cc | 32 +- dcmrt/libsrc/drtds.cc | 61 +- dcmrt/libsrc/drtdspcs.cc | 61 +- dcmrt/libsrc/drtdss.cc | 32 +- dcmrt/libsrc/drtdvhs.cc | 32 +- dcmrt/libsrc/drtdvrrs.cc | 32 +- dcmrt/libsrc/drteas.cc | 32 +- dcmrt/libsrc/drtecs.cc | 295 +- dcmrt/libsrc/drtes.cc | 32 +- dcmrt/libsrc/drtfds.cc | 32 +- dcmrt/libsrc/drtfes.cc | 32 +- dcmrt/libsrc/drtfgs.cc | 32 +- dcmrt/libsrc/drtfgss.cc | 32 +- dcmrt/libsrc/drtfms.cc | 32 +- dcmrt/libsrc/drtfsss.cc | 32 +- dcmrt/libsrc/drtgas.cc | 32 +- dcmrt/libsrc/drtgpis.cc | 634 +++ dcmrt/libsrc/drthsdrs.cc | 32 +- dcmrt/libsrc/drtiais.cc | 32 +- dcmrt/libsrc/drtians.cc | 32 +- dcmrt/libsrc/drtiblds.cc | 32 +- dcmrt/libsrc/drtibls.cc | 32 +- dcmrt/libsrc/drtibs.cc | 97 +- dcmrt/libsrc/drticpds.cc | 162 +- dcmrt/libsrc/drticps.cc | 99 +- dcmrt/libsrc/drtics.cc | 61 +- dcmrt/libsrc/drtiis.cc | 71 +- dcmrt/libsrc/drtimage.cc | 583 ++- dcmrt/libsrc/drtionpl.cc | 481 +- dcmrt/libsrc/drtiontr.cc | 463 +- dcmrt/libsrc/drtipiqs.cc | 32 +- dcmrt/libsrc/drtircs.cc | 32 +- dcmrt/libsrc/drtiseis.cc | 32 +- dcmrt/libsrc/drtitts.cc | 186 +- dcmrt/libsrc/drtiwps.cc | 32 +- dcmrt/libsrc/drtiws.cc | 32 +- dcmrt/libsrc/drtlsds.cc | 32 +- dcmrt/libsrc/drtlsds6.cc | 32 +- dcmrt/libsrc/drtlsds7.cc | 32 +- dcmrt/libsrc/drtmacds.cc | 32 +- dcmrt/libsrc/drtmas.cc | 47 +- dcmrt/libsrc/drtmdrs.cc | 32 +- dcmrt/libsrc/drtmls.cc | 44 +- dcmrt/libsrc/drtmps.cc | 32 +- dcmrt/libsrc/drtmris.cc | 602 +++ dcmrt/libsrc/drtmss.cc | 32 +- dcmrt/libsrc/drtmucs.cc | 61 +- dcmrt/libsrc/drtoas.cc | 32 +- dcmrt/libsrc/drtois.cc | 32 +- dcmrt/libsrc/drtopis.cc | 32 +- dcmrt/libsrc/drtos.cc | 68 +- dcmrt/libsrc/drtpbcs.cc | 61 +- dcmrt/libsrc/drtpcs.cc | 61 +- dcmrt/libsrc/drtpcxs.cc | 32 +- dcmrt/libsrc/drtpdecs.cc | 39 +- dcmrt/libsrc/drtpdeds.cc | 764 +++ dcmrt/libsrc/drtpfms.cc | 32 +- dcmrt/libsrc/drtpics.cc | 61 +- dcmrt/libsrc/drtplan.cc | 481 +- dcmrt/libsrc/drtporcs.cc | 61 +- dcmrt/libsrc/drtporis.cc | 32 +- dcmrt/libsrc/drtppcs.cc | 61 +- dcmrt/libsrc/drtprsis.cc | 32 +- dcmrt/libsrc/drtpscs.cc | 61 +- dcmrt/libsrc/drtpsics.cc | 61 +- dcmrt/libsrc/drtpss.cc | 32 +- dcmrt/libsrc/drtpsss.cc | 32 +- dcmrt/libsrc/drtpvis.cc | 32 +- dcmrt/libsrc/drtqds.cc | 32 +- dcmrt/libsrc/drtras.cc | 32 +- dcmrt/libsrc/drtrbas2.cc | 32 +- dcmrt/libsrc/drtrbas8.cc | 32 +- dcmrt/libsrc/drtrbls.cc | 32 +- dcmrt/libsrc/drtrbos1.cc | 32 +- dcmrt/libsrc/drtrbos6.cc | 32 +- dcmrt/libsrc/drtrbos7.cc | 32 +- dcmrt/libsrc/drtrbs2.cc | 32 +- dcmrt/libsrc/drtrbs4.cc | 128 +- dcmrt/libsrc/drtrbs8.cc | 128 +- dcmrt/libsrc/drtrcdrs.cc | 32 +- dcmrt/libsrc/drtrcos.cc | 32 +- dcmrt/libsrc/drtrcps.cc | 32 +- dcmrt/libsrc/drtrcs.cc | 32 +- dcmrt/libsrc/drtrdros.cc | 32 +- dcmrt/libsrc/drtrdrs1.cc | 32 +- dcmrt/libsrc/drtrdrs6.cc | 32 +- dcmrt/libsrc/drtrdrs8.cc | 32 +- dcmrt/libsrc/drtrds.cc | 32 +- dcmrt/libsrc/drtrecs.cc | 32 +- dcmrt/libsrc/drtrfgs.cc | 32 +- dcmrt/libsrc/drtrfors.cc | 32 +- dcmrt/libsrc/drtrics.cc | 70 +- dcmrt/libsrc/drtrims.cc | 32 +- dcmrt/libsrc/drtris.cc | 32 +- dcmrt/libsrc/drtrlsds.cc | 32 +- dcmrt/libsrc/drtrmdrs.cc | 32 +- dcmrt/libsrc/drtrms.cc | 32 +- dcmrt/libsrc/drtrmss6.cc | 32 +- dcmrt/libsrc/drtrmss7.cc | 32 +- dcmrt/libsrc/drtrpcs.cc | 61 +- dcmrt/libsrc/drtrpis.cc | 32 +- dcmrt/libsrc/drtrppcs.cc | 61 +- dcmrt/libsrc/drtrpphs.cc | 32 +- dcmrt/libsrc/drtrpps.cc | 32 +- dcmrt/libsrc/drtrppss.cc | 32 +- dcmrt/libsrc/drtrps.cc | 32 +- dcmrt/libsrc/drtrris1.cc | 32 +- dcmrt/libsrc/drtrris6.cc | 32 +- dcmrt/libsrc/drtrris9.cc | 32 +- dcmrt/libsrc/drtrrms.cc | 32 +- dcmrt/libsrc/drtrros.cc | 39 +- dcmrt/libsrc/drtrrpcs.cc | 61 +- dcmrt/libsrc/drtrrros.cc | 32 +- dcmrt/libsrc/drtrrs.cc | 32 +- dcmrt/libsrc/drtrrshs.cc | 32 +- dcmrt/libsrc/drtrrtps.cc | 32 +- dcmrt/libsrc/drtrrtps3.cc | 32 +- dcmrt/libsrc/drtrrtps4.cc | 32 +- dcmrt/libsrc/drtrrtps5.cc | 32 +- dcmrt/libsrc/drtrscs.cc | 61 +- dcmrt/libsrc/drtrsers.cc | 32 +- dcmrt/libsrc/drtrses.cc | 32 +- dcmrt/libsrc/drtrshs.cc | 32 +- dcmrt/libsrc/drtrshs6.cc | 32 +- dcmrt/libsrc/drtrshs7.cc | 32 +- dcmrt/libsrc/drtrsis.cc | 32 +- dcmrt/libsrc/drtrsns.cc | 32 +- dcmrt/libsrc/drtrsos.cc | 32 +- dcmrt/libsrc/drtrsrs.cc | 32 +- dcmrt/libsrc/drtrss.cc | 32 +- dcmrt/libsrc/drtrsss.cc | 32 +- dcmrt/libsrc/drtrsts.cc | 32 +- dcmrt/libsrc/drtrtrs2.cc | 32 +- dcmrt/libsrc/drtrtrs4.cc | 32 +- dcmrt/libsrc/drtrvis.cc | 32 +- dcmrt/libsrc/drtrws.cc | 32 +- dcmrt/libsrc/drtrwvms.cc | 90 +- dcmrt/libsrc/drtscris.cc | 32 +- dcmrt/libsrc/drtscs.cc | 957 ++++ dcmrt/libsrc/drtsdcs.cc | 61 +- dcmrt/libsrc/drtsds.cc | 32 +- dcmrt/libsrc/drtshds.cc | 32 +- dcmrt/libsrc/drtsins.cc | 580 +++ dcmrt/libsrc/drtsis.cc | 32 +- dcmrt/libsrc/drtsns.cc | 32 +- dcmrt/libsrc/drtspccs.cc | 61 +- dcmrt/libsrc/drtspcs.cc | 61 +- dcmrt/libsrc/drtspgis.cc | 580 +++ dcmrt/libsrc/{drtarics.cc => drtsptcs.cc} | 244 +- dcmrt/libsrc/drtss.cc | 32 +- dcmrt/libsrc/drtssrcs.cc | 957 ++++ dcmrt/libsrc/drtssrs.cc | 32 +- dcmrt/libsrc/drtsss.cc | 580 +++ dcmrt/libsrc/drtstrct.cc | 463 +- dcmrt/libsrc/drttms0.cc | 32 +- dcmrt/libsrc/drttms9.cc | 32 +- dcmrt/libsrc/drttreat.cc | 463 +- dcmrt/libsrc/drttscds.cc | 32 +- dcmrt/libsrc/drttsibs.cc | 97 +- dcmrt/libsrc/drttsmds.cc | 32 +- dcmrt/libsrc/drttts.cc | 32 +- dcmrt/libsrc/drtudis.cc | 573 +++ dcmrt/libsrc/drtvls.cc | 32 +- dcmrt/libsrc/drtwps.cc | 32 +- dcmrt/libsrc/drtwrs.cc | 32 +- dcmrt/libsrc/drtwrsrs.cc | 32 +- dcmrt/libsrc/drtws.cc | 32 +- dcmrt/libsrc/drtxrs.cc | 32 +- dcmrt/tests/Makefile.dep | 78 +- dcmrt/tests/Makefile.in | 4 +- dcmseg/apps/CMakeLists.txt | 9 - dcmseg/include/dcmtk/dcmseg/segdoc.h | 48 +- dcmseg/include/dcmtk/dcmseg/segtypes.h | 8 +- dcmseg/libsrc/CMakeLists.txt | 1 - dcmseg/libsrc/Makefile.dep | 38 +- dcmseg/libsrc/segdoc.cc | 78 +- dcmseg/tests/Makefile.in | 4 +- dcmsign/apps/Makefile.dep | 5 +- dcmsign/apps/Makefile.in | 2 +- dcmsign/apps/dcmsign.cc | 25 +- dcmsign/include/dcmtk/dcmsign/sisha256.h | 96 + dcmsign/include/dcmtk/dcmsign/sisha384.h | 96 + dcmsign/include/dcmtk/dcmsign/sisha512.h | 96 + dcmsign/include/dcmtk/dcmsign/sitypes.h | 17 +- dcmsign/libsrc/CMakeLists.txt | 2 +- dcmsign/libsrc/Makefile.dep | 46 +- dcmsign/libsrc/Makefile.in | 2 +- dcmsign/libsrc/dcsignat.cc | 6 + dcmsign/libsrc/sicert.cc | 12 +- dcmsign/libsrc/sicertvf.cc | 16 +- dcmsign/libsrc/sidsa.cc | 20 +- dcmsign/libsrc/siprivat.cc | 11 +- dcmsign/libsrc/sirsa.cc | 20 +- dcmsign/libsrc/sisha256.cc | 89 + dcmsign/libsrc/sisha384.cc | 89 + dcmsign/libsrc/sisha512.cc | 89 + dcmsign/libsrc/sitypes.cc | 4 +- dcmsr/apps/Makefile.in | 2 +- dcmsr/apps/dsr2html.cc | 12 +- dcmsr/apps/dsr2xml.cc | 14 +- dcmsr/apps/dsrdump.cc | 12 +- dcmsr/apps/xml2dsr.cc | 9 + dcmsr/data/dsr2xml.xsd | 27 +- dcmsr/docs/dsr2html.man | 7 +- dcmsr/docs/dsr2xml.man | 7 +- dcmsr/docs/dsrdump.man | 7 +- dcmsr/docs/xml2dsr.man | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid100.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid11.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid244.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid29.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid42.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h | 24 +- dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h | 10 +- dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h | 4 +- dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h | 12 +- dcmsr/include/dcmtk/dcmsr/codes/dcm.h | 119 +- dcmsr/include/dcmtk/dcmsr/codes/ncit.h | 4 +- dcmsr/include/dcmtk/dcmsr/codes/umls.h | 7 +- dcmsr/include/dcmtk/dcmsr/dsrcodvl.h | 4 + dcmsr/include/dcmtk/dcmsr/dsrcsidl.h | 2 +- dcmsr/include/dcmtk/dcmsr/dsrdoc.h | 68 +- dcmsr/include/dcmtk/dcmsr/dsrdoctr.h | 15 + dcmsr/include/dcmtk/dcmsr/dsrposcn.h | 2 + dcmsr/include/dcmtk/dcmsr/dsrrefin.h | 4 +- dcmsr/include/dcmtk/dcmsr/dsrsaecc.h | 94 + dcmsr/include/dcmtk/dcmsr/dsrsc3vl.h | 14 +- dcmsr/include/dcmtk/dcmsr/dsrscovl.h | 12 +- dcmsr/include/dcmtk/dcmsr/dsrsoprf.h | 4 +- dcmsr/include/dcmtk/dcmsr/dsrtcovl.h | 15 +- dcmsr/include/dcmtk/dcmsr/dsrtlist.h | 41 + dcmsr/include/dcmtk/dcmsr/dsrtypes.h | 25 +- dcmsr/include/dcmtk/dcmsr/dsrxmld.h | 20 +- dcmsr/libcmr/cid100.cc | 4 +- dcmsr/libcmr/cid10013.cc | 4 +- dcmsr/libcmr/cid10033.cc | 4 +- dcmsr/libcmr/cid11.cc | 4 +- dcmsr/libcmr/cid244.cc | 4 +- dcmsr/libcmr/cid29.cc | 4 +- dcmsr/libcmr/cid4020.cc | 4 +- dcmsr/libcmr/cid4021.cc | 4 +- dcmsr/libcmr/cid4031.cc | 4 +- dcmsr/libcmr/cid42.cc | 4 +- dcmsr/libcmr/cid5000.cc | 28 +- dcmsr/libcmr/cid6147.cc | 4 +- dcmsr/libcmr/cid7021.cc | 4 +- dcmsr/libcmr/cid7181.cc | 8 +- dcmsr/libcmr/cid7445.cc | 4 +- dcmsr/libcmr/cid7452.cc | 4 +- dcmsr/libcmr/cid7453.cc | 4 +- dcmsr/libcmr/cid7464.cc | 4 +- dcmsr/libcmr/cid7469.cc | 8 +- dcmsr/libcmr/tid1600.cc | 2 +- dcmsr/libsrc/CMakeLists.txt | 2 +- dcmsr/libsrc/Makefile.dep | 107 +- dcmsr/libsrc/Makefile.in | 2 +- dcmsr/libsrc/dsrcsidl.cc | 2 +- dcmsr/libsrc/dsrdoc.cc | 123 +- dcmsr/libsrc/dsrdoctr.cc | 9 + dcmsr/libsrc/dsrimgfr.cc | 6 + dcmsr/libsrc/dsrimgse.cc | 6 + dcmsr/libsrc/dsrrefin.cc | 2 +- dcmsr/libsrc/dsrsaecc.cc | 133 + dcmsr/libsrc/dsrsc3gr.cc | 6 + dcmsr/libsrc/dsrscogr.cc | 6 + dcmsr/libsrc/dsrsoprf.cc | 2 +- dcmsr/libsrc/dsrtcodt.cc | 6 + dcmsr/libsrc/dsrtcosp.cc | 6 + dcmsr/libsrc/dsrtcoto.cc | 7 +- dcmsr/libsrc/dsrtypes.cc | 219 +- dcmsr/libsrc/dsrwavch.cc | 6 + dcmsr/libsrc/dsrxmld.cc | 15 +- dcmsr/tests/CMakeLists.txt | 2 +- dcmsr/tests/Makefile.dep | 46 + dcmsr/tests/Makefile.in | 5 +- dcmsr/tests/tests.cc | 2 + dcmsr/tests/tsrlist.cc | 68 + dcmtls/docs/ciphers.txt | 120 +- dcmtls/include/dcmtk/dcmtls/tlsscu.h | 129 +- dcmtls/libsrc/Makefile.dep | 7 +- dcmtls/libsrc/tlslayer.cc | 107 +- dcmtls/libsrc/tlstrans.cc | 12 +- dcmtls/tests/dcmtk_ca.pl | 32 +- dcmtract/docs/dcmtract.dox | 3 +- .../include/dcmtk/dcmtract/trcstatistic.h | 38 +- .../dcmtk/dcmtract/trctractographyresults.h | 12 +- dcmtract/libsrc/CMakeLists.txt | 1 - dcmtract/libsrc/Makefile.dep | 22 +- dcmtract/libsrc/trcstatistic.cc | 14 +- dcmtract/libsrc/trctrackset.cc | 4 +- dcmwlm/apps/Makefile.in | 2 +- dcmwlm/docs/wlmscpfs.man | 3 + dcmwlm/include/dcmtk/dcmwlm/wlfsim.h | 20 +- dcmwlm/include/dcmtk/dcmwlm/wltypdef.h | 4 +- dcmwlm/libsrc/Makefile.dep | 1 + dcmwlm/libsrc/wlds.cc | 17 +- dcmwlm/libsrc/wldsfs.cc | 8 +- dcmwlm/libsrc/wlfsim.cc | 68 +- dcmwlm/libsrc/wlmactmg.cc | 26 +- dcmwlm/tests/Makefile.in | 2 +- dcmwlm/tests/wltest.cc | 4 +- docs/CHANGES.361 | 4312 +++++++++++++++++ doxygen/htmldocs.cfg | 4 +- doxygen/htmldocs.dox | 1 + doxygen/manpages.cfg | 2 +- doxygen/manpages/man1/dcm2json.1 | 305 ++ doxygen/manpages/man1/dcm2pdf.1 | 2 +- doxygen/manpages/man1/dcm2pnm.1 | 2 +- doxygen/manpages/man1/dcm2xml.1 | 7 +- doxygen/manpages/man1/dcmcjpeg.1 | 2 +- doxygen/manpages/man1/dcmcjpls.1 | 2 +- doxygen/manpages/man1/dcmconv.1 | 31 +- doxygen/manpages/man1/dcmcrle.1 | 2 +- doxygen/manpages/man1/dcmdjpeg.1 | 13 +- doxygen/manpages/man1/dcmdjpls.1 | 2 +- doxygen/manpages/man1/dcmdrle.1 | 2 +- doxygen/manpages/man1/dcmdspfn.1 | 2 +- doxygen/manpages/man1/dcmdump.1 | 31 +- doxygen/manpages/man1/dcmftest.1 | 2 +- doxygen/manpages/man1/dcmgpdir.1 | 2 +- doxygen/manpages/man1/dcmj2pnm.1 | 2 +- doxygen/manpages/man1/dcml2pnm.1 | 2 +- doxygen/manpages/man1/dcmmkcrv.1 | 2 +- doxygen/manpages/man1/dcmmkdir.1 | 2 +- doxygen/manpages/man1/dcmmklut.1 | 2 +- doxygen/manpages/man1/dcmodify.1 | 2 +- doxygen/manpages/man1/dcmp2pgm.1 | 10 +- doxygen/manpages/man1/dcmprscp.1 | 2 +- doxygen/manpages/man1/dcmprscu.1 | 2 +- doxygen/manpages/man1/dcmpschk.1 | 2 +- doxygen/manpages/man1/dcmpsmk.1 | 2 +- doxygen/manpages/man1/dcmpsprt.1 | 2 +- doxygen/manpages/man1/dcmpsrcv.1 | 2 +- doxygen/manpages/man1/dcmpssnd.1 | 2 +- doxygen/manpages/man1/dcmqridx.1 | 2 +- doxygen/manpages/man1/dcmqrscp.1 | 76 +- doxygen/manpages/man1/dcmqrti.1 | 2 +- doxygen/manpages/man1/dcmquant.1 | 2 +- doxygen/manpages/man1/dcmrecv.1 | 4 +- doxygen/manpages/man1/dcmscale.1 | 2 +- doxygen/manpages/man1/dcmsend.1 | 4 +- doxygen/manpages/man1/dcmsign.1 | 2 +- doxygen/manpages/man1/dcod2lum.1 | 2 +- doxygen/manpages/man1/dconvlum.1 | 2 +- doxygen/manpages/man1/drtdump.1 | 2 +- doxygen/manpages/man1/dsr2html.1 | 9 +- doxygen/manpages/man1/dsr2xml.1 | 9 +- doxygen/manpages/man1/dsrdump.1 | 9 +- doxygen/manpages/man1/dump2dcm.1 | 2 +- doxygen/manpages/man1/echoscu.1 | 7 +- doxygen/manpages/man1/findscu.1 | 4 +- doxygen/manpages/man1/getscu.1 | 24 +- doxygen/manpages/man1/img2dcm.1 | 2 +- doxygen/manpages/man1/movescu.1 | 51 +- doxygen/manpages/man1/pdf2dcm.1 | 2 +- doxygen/manpages/man1/storescp.1 | 24 +- doxygen/manpages/man1/storescu.1 | 19 +- doxygen/manpages/man1/termscu.1 | 4 +- doxygen/manpages/man1/wlmscpfs.1 | 5 +- doxygen/manpages/man1/xml2dcm.1 | 2 +- doxygen/manpages/man1/xml2dsr.1 | 6 +- oflog/include/dcmtk/oflog/config/defines.h | 3 +- oflog/include/dcmtk/oflog/oflog.h | 9 +- oflog/libsrc/CMakeLists.txt | 1 - oflog/libsrc/hierlock.cc | 19 +- oflog/libsrc/oflog.cc | 4 +- ofstd/include/CMakeLists.txt | 2 +- ofstd/include/Makefile.in | 4 + ofstd/include/dcmtk/ofstd/diag/cnvrsn.def | 7 + ofstd/include/dcmtk/ofstd/diag/mmtag.def | 9 + ofstd/include/dcmtk/ofstd/diag/nsdfti.def | 5 + ofstd/include/dcmtk/ofstd/diag/overflow.def | 9 + ofstd/include/dcmtk/ofstd/diag/piof.def | 9 + ofstd/include/dcmtk/ofstd/diag/pop.def | 7 + ofstd/include/dcmtk/ofstd/diag/push.def | 7 + ofstd/include/dcmtk/ofstd/diag/shadow.def | 9 + ofstd/include/dcmtk/ofstd/diag/signcmp.def | 7 + ofstd/include/dcmtk/ofstd/diag/vsprfw.def | 5 + ofstd/include/dcmtk/ofstd/ofchrenc.h | 306 +- ofstd/include/dcmtk/ofstd/ofdate.h | 4 +- ofstd/include/dcmtk/ofstd/ofdatime.h | 49 +- ofstd/include/dcmtk/ofstd/ofdiag.h | 165 + ofstd/include/dcmtk/ofstd/offile.h | 12 +- ofstd/include/dcmtk/ofstd/oflimits.h | 26 +- ofstd/include/dcmtk/ofstd/oflist.h | 10 +- ofstd/include/dcmtk/ofstd/ofoption.h | 4 +- ofstd/include/dcmtk/ofstd/ofstd.h | 86 + ofstd/include/dcmtk/ofstd/ofthread.h | 11 - ofstd/include/dcmtk/ofstd/oftraits.h | 2 +- ofstd/include/dcmtk/ofstd/oftuple.h | 7 +- ofstd/include/dcmtk/ofstd/ofutil.h | 353 +- ofstd/include/dcmtk/ofstd/ofvriant.h | 740 +++ ofstd/include/dcmtk/ofstd/variadic/helpers.h | 91 + ofstd/include/dcmtk/ofstd/variadic/variant.h | 436 ++ ofstd/libsrc/CMakeLists.txt | 2 +- ofstd/libsrc/Makefile.dep | 25 +- ofstd/libsrc/Makefile.in | 1 + ofstd/libsrc/ofchrenc.cc | 864 ++-- ofstd/libsrc/ofconapp.cc | 12 +- ofstd/libsrc/ofdatime.cc | 28 +- ofstd/libsrc/offname.cc | 6 +- ofstd/libsrc/ofstd.cc | 17 +- ofstd/libsrc/ofthread.cc | 55 +- ofstd/tests/CMakeLists.txt | 2 +- ofstd/tests/Makefile.dep | 39 +- ofstd/tests/Makefile.in | 4 +- ofstd/tests/tchrenc.cc | 71 +- ofstd/tests/tests.cc | 1 + ofstd/tests/tlimits.cc | 29 + ofstd/tests/tofdatim.cc | 5 + ofstd/tests/toffile.cc | 4 +- ofstd/tests/toption.cc | 21 + ofstd/tests/tthread.cc | 130 +- ofstd/tests/ttuple.cc | 21 + ofstd/tests/tvariant.cc | 131 + 1080 files changed, 64091 insertions(+), 13366 deletions(-) mode change 100755 => 100644 CMake/3rdparty.cmake create mode 100644 CMake/FindICU.cmake create mode 100644 dcmdata/apps/dcm2json.cc create mode 100644 dcmdata/docs/dcm2json.man create mode 100755 dcmdata/include/dcmtk/dcmdata/dcjson.h create mode 100644 dcmdata/include/dcmtk/dcmdata/dcmatch.h create mode 100644 dcmdata/libsrc/dcjson.cc create mode 100644 dcmdata/libsrc/dcmatch.cc create mode 100644 dcmdata/tests/tmatch.cc create mode 100644 dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h create mode 100644 dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h create mode 100644 dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h create mode 100644 dcmfg/libsrc/fgframeanatomy.cc create mode 100644 dcmfg/libsrc/fgidentpixeltransform.cc create mode 100644 dcmfg/libsrc/fgparametricmapframetype.cc create mode 100644 dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h create mode 100644 dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h create mode 100644 dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h create mode 100644 dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h create mode 100644 dcmiod/libsrc/iodcontentitemmacro.cc delete mode 100644 dcmiod/libsrc/iodimage.cc create mode 100644 dcmiod/libsrc/modfloatingpointimagepixel.cc create mode 100644 dcmiod/libsrc/modimagepixelbase.cc create mode 100644 dcmiod/tests/timagepixel.cc create mode 100644 dcmnet/tests/tscuscp.cc create mode 100644 dcmpmap/CMakeLists.txt create mode 100644 dcmpmap/Makefile.in create mode 100755 dcmpmap/configure create mode 100644 dcmpmap/data/Makefile.in create mode 100644 dcmpmap/docs/Makefile.in create mode 100644 dcmpmap/docs/dcmpmap.dox create mode 100644 dcmpmap/etc/Makefile.in create mode 100644 dcmpmap/include/CMakeLists.txt create mode 100644 dcmpmap/include/Makefile.in create mode 100644 dcmpmap/include/dcmtk/dcmpmap/dpmdef.h create mode 100644 dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h create mode 100644 dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h create mode 100644 dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h create mode 100644 dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h create mode 100644 dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h create mode 100644 dcmpmap/libsrc/CMakeLists.txt create mode 100644 dcmpmap/libsrc/Makefile.dep create mode 100644 dcmpmap/libsrc/Makefile.in create mode 100644 dcmpmap/libsrc/dpmmodparametricmapimage.cc create mode 100644 dcmpmap/libsrc/dpmmodparametricmapseries.cc create mode 100644 dcmpmap/libsrc/dpmparametricmapbase.cc create mode 100644 dcmpmap/libsrc/dpmparametricmapiod.cc create mode 100644 dcmpmap/libsrc/dpmtypes.cc create mode 100644 dcmpmap/tests/Makefile.in create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtddps.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtmris.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h rename dcmrt/include/dcmtk/dcmrt/seq/{drtarics.h => drtscs.h} (91%) create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtsins.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtsss.h create mode 100644 dcmrt/include/dcmtk/dcmrt/seq/drtudis.h create mode 100644 dcmrt/libsrc/drtcgis.cc create mode 100644 dcmrt/libsrc/drtdddps.cc create mode 100644 dcmrt/libsrc/drtddps.cc create mode 100644 dcmrt/libsrc/drtgpis.cc create mode 100644 dcmrt/libsrc/drtmris.cc create mode 100644 dcmrt/libsrc/drtpdeds.cc create mode 100644 dcmrt/libsrc/drtscs.cc create mode 100644 dcmrt/libsrc/drtsins.cc create mode 100644 dcmrt/libsrc/drtspgis.cc rename dcmrt/libsrc/{drtarics.cc => drtsptcs.cc} (73%) create mode 100644 dcmrt/libsrc/drtssrcs.cc create mode 100644 dcmrt/libsrc/drtsss.cc create mode 100644 dcmrt/libsrc/drtudis.cc delete mode 100644 dcmseg/apps/CMakeLists.txt create mode 100644 dcmsign/include/dcmtk/dcmsign/sisha256.h create mode 100644 dcmsign/include/dcmtk/dcmsign/sisha384.h create mode 100644 dcmsign/include/dcmtk/dcmsign/sisha512.h create mode 100644 dcmsign/libsrc/sisha256.cc create mode 100644 dcmsign/libsrc/sisha384.cc create mode 100644 dcmsign/libsrc/sisha512.cc create mode 100644 dcmsr/include/dcmtk/dcmsr/dsrsaecc.h create mode 100644 dcmsr/libsrc/dsrsaecc.cc create mode 100644 dcmsr/tests/tsrlist.cc create mode 100644 doxygen/manpages/man1/dcm2json.1 create mode 100644 ofstd/include/dcmtk/ofstd/diag/cnvrsn.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/mmtag.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/nsdfti.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/overflow.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/piof.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/pop.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/push.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/shadow.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/signcmp.def create mode 100644 ofstd/include/dcmtk/ofstd/diag/vsprfw.def create mode 100644 ofstd/include/dcmtk/ofstd/ofdiag.h create mode 100644 ofstd/include/dcmtk/ofstd/ofvriant.h create mode 100644 ofstd/include/dcmtk/ofstd/variadic/helpers.h create mode 100644 ofstd/include/dcmtk/ofstd/variadic/variant.h create mode 100644 ofstd/tests/tvariant.cc diff --git a/CMake/3rdparty.cmake b/CMake/3rdparty.cmake old mode 100755 new mode 100644 index 9fcca779..eedce5f0 --- a/CMake/3rdparty.cmake +++ b/CMake/3rdparty.cmake @@ -1,4 +1,4 @@ -IF(WIN32) +IF(WIN32 AND NOT MINGW) # For Windows, we don't used FIND_PACKAGE because DCMTK usually is used with its # own set of 3rd-party support libraries that can be downloaded from DCMTK's @@ -139,7 +139,7 @@ IF(WIN32) ENDIF(WITH_LIBICONVINC) ENDIF(DCMTK_WITH_ICONV) -ELSE(WIN32) +ELSE(WIN32 AND NOT MINGW) # Find TIFF IF(DCMTK_WITH_TIFF) @@ -269,6 +269,32 @@ ELSE(WIN32) ENDIF() +IF(NOT DEFINED DCMTK_WITH_STDLIBC_ICONV) + INCLUDE(CheckCXXSourceCompiles) + CHECK_CXX_SOURCE_COMPILES("#include \nint main(){iconv_t cd = iconv_open(\"\",\"\");iconv(cd,0,0,0,0);iconv_close(cd);return 0;}" WITH_STDLIBC_ICONV) + IF(WITH_STDLIBC_ICONV) + MESSAGE(STATUS "Info: found builtin ICONV support inside the C standard library.") + SET(DCMTK_WITH_STDLIBC_ICONV ON CACHE BOOL "" FORCE) + ELSE(WITH_STDLIBC_ICONV) + SET(DCMTK_WITH_STDLIBC_ICONV OFF CACHE BOOL "" FORCE) + ENDIF(WITH_STDLIBC_ICONV) +ENDIF(NOT DEFINED DCMTK_WITH_STDLIBC_ICONV) + +IF(DCMTK_WITH_ICU) + FIND_PACKAGE(ICU) + IF(NOT ICU_FOUND) + MESSAGE(STATUS "Warning: ICU support will be disabled because the ICU were not found.") + SET(DCMTK_WITH_ICU OFF CACHE BOOL "" FORCE) + SET(WITH_ICU "") + ELSE(NOT ICU_FOUND) + MESSAGE(STATUS "Info: DCMTK ICU support will be enabled") + SET(WITH_ICU 1) + SET(ICU_INCDIR ${ICU_INCLUDE_DIR}) + SET(ICU_LIBS ${ICU_LIBRARIES}) + INCLUDE_DIRECTORIES(${ICU_INCLUDE_DIR}) + ENDIF(NOT ICU_FOUND) +ENDIF(DCMTK_WITH_ICU) + # Find doxygen IF(DCMTK_WITH_DOXYGEN) FIND_PACKAGE(Doxygen QUIET) # will set variable DOXYGEN_EXECUTABLE @@ -278,7 +304,7 @@ IF(DCMTK_WITH_DOXYGEN) ENDIF(NOT DOXYGEN_FOUND) ENDIF(DCMTK_WITH_DOXYGEN) -IF(DCMTK_WITH_ICONV) +IF(DCMTK_WITH_ICONV OR DCMTK_WITH_STDLIBC_ICONV) INCLUDE(CheckCXXSourceCompiles) SET(CMAKE_REQUIRED_INCLUDES ${LIBICONV_INCDIR}) SET(CMAKE_REQUIRED_LIBRARIES ${LIBICONV_LIBS}) @@ -292,4 +318,4 @@ IF(DCMTK_WITH_ICONV) }" LIBICONV_SECOND_ARGUMENT_CONST) SET(CMAKE_REQUIRED_INCLUDES) SET(CMAKE_REQUIRED_LIBRARIES) -ENDIF(DCMTK_WITH_ICONV) +ENDIF(DCMTK_WITH_ICONV OR DCMTK_WITH_STDLIBC_ICONV) diff --git a/CMake/DCMTKConfig.cmake.in b/CMake/DCMTKConfig.cmake.in index b77a8560..89188d27 100644 --- a/CMake/DCMTKConfig.cmake.in +++ b/CMake/DCMTKConfig.cmake.in @@ -33,15 +33,8 @@ SET(DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS @DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS@) SET(DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS @DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS@) SET(DCMTK_WIDE_CHAR_MAIN_FUNCTION @DCMTK_WIDE_CHAR_MAIN_FUNCTION@) -@DCMTK_INCLUDE_DIR_CONFIGS@ - SET_AND_CHECK(DCMTK_TARGETS "@PACKAGE_DCMTK_CMKDIR_CONFIG@/DCMTKTargets.cmake") -SET(DCMTK_INCLUDE_DIRS "") -FOREACH(module config ${DCMTK_MODULES}) - LIST(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_${module}_INCLUDE_DIR}) -ENDFOREACH(module) - @DCMTK_CONFIG_CODE@ # Compatibility: This variable is deprecated diff --git a/CMake/FindICU.cmake b/CMake/FindICU.cmake new file mode 100644 index 00000000..59dd891a --- /dev/null +++ b/CMake/FindICU.cmake @@ -0,0 +1,690 @@ +# This module can find the International Components for Unicode (ICU) libraries +# +# Requirements: +# - CMake >= 2.8.3 (for new version of find_package_handle_standard_args) +# +# The following variables will be defined for your use: +# - ICU_FOUND : were all of your specified components found? +# - ICU_INCLUDE_DIRS : ICU include directory +# - ICU_LIBRARIES : ICU libraries +# - ICU_VERSION : complete version of ICU (x.y.z) +# - ICU_VERSION_MAJOR : major version of ICU +# - ICU_VERSION_MINOR : minor version of ICU +# - ICU_VERSION_PATCH : patch version of ICU +# - ICU__FOUND : were found? (FALSE for non specified component if it is not a dependency) +# +# For windows or non standard installation, define ICU_ROOT_DIR variable to point to the root installation of ICU. Two ways: +# - run cmake with -DICU_ROOT_DIR= +# - define an environment variable with the same name before running cmake +# With cmake-gui, before pressing "Configure": +# 1) Press "Add Entry" button +# 2) Add a new entry defined as: +# - Name: ICU_ROOT_DIR +# - Type: choose PATH in the selection list +# - Press "..." button and select the root installation of ICU +# +# Example Usage: +# +# 1. Copy this file in the root of your project source directory +# 2. Then, tell CMake to search this non-standard module in your project directory by adding to your CMakeLists.txt: +# set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) +# 3. Finally call find_package() once, here are some examples to pick from +# +# Require ICU 4.4 or later +# find_package(ICU 4.4 REQUIRED) +# +# if(ICU_FOUND) +# add_executable(myapp myapp.c) +# include_directories(${ICU_INCLUDE_DIRS}) +# target_link_libraries(myapp ${ICU_LIBRARIES}) +# # with CMake >= 3.0.0, the last two lines can be replaced by the following +# target_link_libraries(myapp ICU::ICU) +# endif(ICU_FOUND) + +########## ########## + +find_package(PkgConfig QUIET) + +########## Private ########## +if(NOT DEFINED ICU_PUBLIC_VAR_NS) + set(ICU_PUBLIC_VAR_NS "ICU") # Prefix for all ICU relative public variables +endif(NOT DEFINED ICU_PUBLIC_VAR_NS) +if(NOT DEFINED ICU_PRIVATE_VAR_NS) + set(ICU_PRIVATE_VAR_NS "_${ICU_PUBLIC_VAR_NS}") # Prefix for all ICU relative internal variables +endif(NOT DEFINED ICU_PRIVATE_VAR_NS) +if(NOT DEFINED PC_ICU_PRIVATE_VAR_NS) + set(PC_ICU_PRIVATE_VAR_NS "_PC${ICU_PRIVATE_VAR_NS}") # Prefix for all pkg-config relative internal variables +endif(NOT DEFINED PC_ICU_PRIVATE_VAR_NS) + +set(${ICU_PRIVATE_VAR_NS}_HINTS ) +# +# for future removal +if(DEFINED ENV{ICU_ROOT}) + list(APPEND ${ICU_PRIVATE_VAR_NS}_HINTS "$ENV{ICU_ROOT}") + message(AUTHOR_WARNING "ENV{ICU_ROOT} is deprecated in favor of ENV{ICU_ROOT_DIR}") +endif(DEFINED ENV{ICU_ROOT}) +if (DEFINED ICU_ROOT) + list(APPEND ${ICU_PRIVATE_VAR_NS}_HINTS "${ICU_ROOT}") + message(AUTHOR_WARNING "ICU_ROOT is deprecated in favor of ICU_ROOT_DIR") +endif(DEFINED ICU_ROOT) +# +if(DEFINED ENV{ICU_ROOT_DIR}) + list(APPEND ${ICU_PRIVATE_VAR_NS}_HINTS "$ENV{ICU_ROOT_DIR}") +endif(DEFINED ENV{ICU_ROOT_DIR}) +if (DEFINED ICU_ROOT_DIR) + list(APPEND ${ICU_PRIVATE_VAR_NS}_HINTS "${ICU_ROOT_DIR}") +endif(DEFINED ICU_ROOT_DIR) + +set(${ICU_PRIVATE_VAR_NS}_COMPONENTS ) +# ... +macro(_icu_declare_component _NAME) + list(APPEND ${ICU_PRIVATE_VAR_NS}_COMPONENTS ${_NAME}) + set("${ICU_PRIVATE_VAR_NS}_COMPONENTS_${_NAME}" ${ARGN}) +endmacro(_icu_declare_component) + +_icu_declare_component(data icudata) +_icu_declare_component(uc icuuc) # Common and Data libraries +_icu_declare_component(i18n icui18n icuin) # Internationalization library +_icu_declare_component(io icuio ustdio) # Stream and I/O Library +_icu_declare_component(le icule) # Layout library +_icu_declare_component(lx iculx) # Paragraph Layout library + +########## Public ########## +set(${ICU_PUBLIC_VAR_NS}_FOUND FALSE) +set(${ICU_PUBLIC_VAR_NS}_LIBRARIES ) +set(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ) +set(${ICU_PUBLIC_VAR_NS}_C_FLAGS "") +set(${ICU_PUBLIC_VAR_NS}_CXX_FLAGS "") +set(${ICU_PUBLIC_VAR_NS}_CPP_FLAGS "") +set(${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS "") +set(${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS "") +set(${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS "") + +foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS}) + string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) + set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" FALSE) # may be done in the _icu_declare_component macro +endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) + +# Check components +if(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) # uc required at least + set(${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) +else(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) + list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS uc) + list(REMOVE_DUPLICATES ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) + foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) + if(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) + message(FATAL_ERROR "Unknown ICU component: ${${ICU_PRIVATE_VAR_NS}_COMPONENT}") + endif(NOT DEFINED ${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}) + endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) +endif(NOT ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS) + +# if pkg-config is available check components dependencies and append `pkg-config icu- --variable=prefix` to hints +if(PKG_CONFIG_FOUND) + set(${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) + foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_DUP}) + pkg_check_modules(${PC_ICU_PRIVATE_VAR_NS} "icu-${${ICU_PRIVATE_VAR_NS}_COMPONENT}" QUIET) + + if(${PC_ICU_PRIVATE_VAR_NS}_FOUND) + list(APPEND ${ICU_PRIVATE_VAR_NS}_HINTS ${${PC_ICU_PRIVATE_VAR_NS}_PREFIX}) + foreach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY ${${PC_ICU_PRIVATE_VAR_NS}_LIBRARIES}) + string(REGEX REPLACE "^icu" "" ${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY ${${PC_ICU_PRIVATE_VAR_NS}_LIBRARY}) + if(NOT ${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY STREQUAL "data") + list(FIND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS ${${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY} ${ICU_PRIVATE_VAR_NS}_COMPONENT_INDEX) + if(${ICU_PRIVATE_VAR_NS}_COMPONENT_INDEX EQUAL -1) + message(WARNING "Missing component dependency: ${${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY}. Add it to your find_package(ICU) line as COMPONENTS to fix this warning.") + list(APPEND ${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS ${${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY}) + endif(${ICU_PRIVATE_VAR_NS}_COMPONENT_INDEX EQUAL -1) + endif(NOT ${PC_ICU_PRIVATE_VAR_NS}_STRIPPED_LIBRARY STREQUAL "data") + endforeach(${PC_ICU_PRIVATE_VAR_NS}_LIBRARY) + endif(${PC_ICU_PRIVATE_VAR_NS}_FOUND) + endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) +endif(PKG_CONFIG_FOUND) +# list(APPEND ${ICU_PRIVATE_VAR_NS}_HINTS ENV ICU_ROOT_DIR) +# message("${ICU_PRIVATE_VAR_NS}_HINTS = ${${ICU_PRIVATE_VAR_NS}_HINTS}") + +# Includes +find_path( + ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR + NAMES unicode/utypes.h utypes.h + HINTS ${${ICU_PRIVATE_VAR_NS}_HINTS} + PATH_SUFFIXES "include" + DOC "Include directories for ICU" +) + +if(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR) + ########## ########## + if(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/unicode/uvernum.h") # ICU >= 4.4 + file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/unicode/uvernum.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) + elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/unicode/uversion.h") # ICU [2;4.4[ + file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/unicode/uversion.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) + elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/unicode/utypes.h") # ICU [1.4;2[ + file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/unicode/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) + elseif(EXISTS "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/utypes.h") # ICU 1.3 + file(READ "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}/utypes.h" ${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS) + else() + message(FATAL_ERROR "ICU version header not found") + endif() + + if(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *ICU_VERSION *\"([0-9]+)\".*") # ICU 1.3 + # [1.3;1.4[ as #define ICU_VERSION "3" (no patch version, ie all 1.3.X versions will be detected as 1.3.0) + set(${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR "1") + set(${ICU_PUBLIC_VAR_NS}_VERSION_MINOR "${CMAKE_MATCH_1}") + set(${ICU_PUBLIC_VAR_NS}_VERSION_PATCH "0") + elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION_MAJOR_NUM *([0-9]+).*") + # + # Since version 4.9.1, ICU release version numbering was totaly changed, see: + # - http://site.icu-project.org/download/49 + # - http://userguide.icu-project.org/design#TOC-Version-Numbers-in-ICU + # + set(${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR "${CMAKE_MATCH_1}") + string(REGEX REPLACE ".*# *define *U_ICU_VERSION_MINOR_NUM *([0-9]+).*" "\\1" ${ICU_PUBLIC_VAR_NS}_VERSION_MINOR "${${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS}") + string(REGEX REPLACE ".*# *define *U_ICU_VERSION_PATCHLEVEL_NUM *([0-9]+).*" "\\1" ${ICU_PUBLIC_VAR_NS}_VERSION_PATCH "${${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS}") + elseif(${ICU_PRIVATE_VAR_NS}_VERSION_HEADER_CONTENTS MATCHES ".*# *define *U_ICU_VERSION *\"(([0-9]+)(\\.[0-9]+)*)\".*") # ICU [1.4;1.8[ + # [1.4;1.8[ as #define U_ICU_VERSION "1.4.1.2" but it seems that some 1.4.[12](?:\.\d)? have releasing error and appears as 1.4.0 + set(${ICU_PRIVATE_VAR_NS}_FULL_VERSION "${CMAKE_MATCH_1}") # copy CMAKE_MATCH_1, no longer valid on the following if + if(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)$") + set(${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR "${CMAKE_MATCH_1}") + set(${ICU_PUBLIC_VAR_NS}_VERSION_MINOR "${CMAKE_MATCH_2}") + set(${ICU_PUBLIC_VAR_NS}_VERSION_PATCH "0") + elseif(${ICU_PRIVATE_VAR_NS}_FULL_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") + set(${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR "${CMAKE_MATCH_1}") + set(${ICU_PUBLIC_VAR_NS}_VERSION_MINOR "${CMAKE_MATCH_2}") + set(${ICU_PUBLIC_VAR_NS}_VERSION_PATCH "${CMAKE_MATCH_3}") + endif() + else() + message(FATAL_ERROR "failed to detect ICU version") + endif() + set(${ICU_PUBLIC_VAR_NS}_VERSION "${${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR}.${${ICU_PUBLIC_VAR_NS}_VERSION_MINOR}.${${ICU_PUBLIC_VAR_NS}_VERSION_PATCH}") + ########## ########## +endif(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR) + +# Check libraries +if(MSVC) + include(SelectLibraryConfigurations) +endif(MSVC) +foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) + string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) + if(MSVC) + set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES ) + set(${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES ) + foreach(${ICU_PRIVATE_VAR_NS}_BASE_NAME ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}}) + list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}") + list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}d") + list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR}${${ICU_PUBLIC_VAR_NS}_VERSION_MINOR}") + list(APPEND ${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES "${${ICU_PRIVATE_VAR_NS}_BASE_NAME}${${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR}${${ICU_PUBLIC_VAR_NS}_VERSION_MINOR}d") + endforeach(${ICU_PRIVATE_VAR_NS}_BASE_NAME) + + find_library( + ${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_RELEASE + NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_RELEASE_NAMES} + HINTS ${${ICU_PRIVATE_VAR_NS}_HINTS} + DOC "Release library for ICU ${${ICU_PRIVATE_VAR_NS}_COMPONENT} component" + ) + find_library( + ${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_DEBUG + NAMES ${${ICU_PRIVATE_VAR_NS}_POSSIBLE_DEBUG_NAMES} + HINTS ${${ICU_PRIVATE_VAR_NS}_HINTS} + DOC "Debug library for ICU ${${ICU_PRIVATE_VAR_NS}_COMPONENT} component" + ) + + select_library_configurations("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}") + list(APPEND ${ICU_PUBLIC_VAR_NS}_LIBRARY ${${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY}) + else(MSVC) + find_library( + ${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY + NAMES ${${ICU_PRIVATE_VAR_NS}_COMPONENTS_${${ICU_PRIVATE_VAR_NS}_COMPONENT}} + PATHS ${${ICU_PRIVATE_VAR_NS}_HINTS} + DOC "Library for ICU ${${ICU_PRIVATE_VAR_NS}_COMPONENT} component" + ) + + if(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY) + set("${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_FOUND" TRUE) + list(APPEND ${ICU_PUBLIC_VAR_NS}_LIBRARY ${${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY}) + endif(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY) + endif(MSVC) +endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) + +# Try to find out compiler flags +find_program(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE icu-config HINTS ${${ICU_PRIVATE_VAR_NS}_HINTS}) +if(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) + execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) + + execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_C_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cxxflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CXX_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE} --cppflags-dynamic OUTPUT_VARIABLE ${ICU_PUBLIC_VAR_NS}_CPP_SHARED_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) +endif(${ICU_PUBLIC_VAR_NS}_CONFIG_EXECUTABLE) + +# Check find_package arguments +include(FindPackageHandleStandardArgs) +if(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) + find_package_handle_standard_args( + ${ICU_PUBLIC_VAR_NS} + REQUIRED_VARS ${ICU_PUBLIC_VAR_NS}_LIBRARY ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR + VERSION_VAR ${ICU_PUBLIC_VAR_NS}_VERSION + ) +else(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) + find_package_handle_standard_args(${ICU_PUBLIC_VAR_NS} "Could NOT find ICU" ${ICU_PUBLIC_VAR_NS}_LIBRARY ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR) +endif(${ICU_PUBLIC_VAR_NS}_FIND_REQUIRED AND NOT ${ICU_PUBLIC_VAR_NS}_FIND_QUIETLY) + +if(${ICU_PUBLIC_VAR_NS}_FOUND) + # + # for compatibility with previous versions, alias old ICU_(MAJOR|MINOR|PATCH)_VERSION to ICU_VERSION_$1 + set(${ICU_PUBLIC_VAR_NS}_MAJOR_VERSION ${${ICU_PUBLIC_VAR_NS}_VERSION_MAJOR}) + set(${ICU_PUBLIC_VAR_NS}_MINOR_VERSION ${${ICU_PUBLIC_VAR_NS}_VERSION_MINOR}) + set(${ICU_PUBLIC_VAR_NS}_PATCH_VERSION ${${ICU_PUBLIC_VAR_NS}_VERSION_PATCH}) + # + set(${ICU_PUBLIC_VAR_NS}_LIBRARIES ${${ICU_PUBLIC_VAR_NS}_LIBRARY}) + set(${ICU_PUBLIC_VAR_NS}_INCLUDE_DIRS ${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}) + + if(NOT CMAKE_VERSION VERSION_LESS "3.0.0") + if(NOT TARGET ICU::ICU) + add_library(ICU::ICU INTERFACE IMPORTED) + endif(NOT TARGET ICU::ICU) + set_target_properties(ICU::ICU PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}") + foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PUBLIC_VAR_NS}_FIND_COMPONENTS}) + string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) + add_library("ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}" UNKNOWN IMPORTED) + if(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_RELEASE) + set_property(TARGET "ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}" APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties("ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}" PROPERTIES IMPORTED_LOCATION_RELEASE "${${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_RELEASE}") + endif(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_RELEASE) + if(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_DEBUG) + set_property(TARGET "ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}" APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties("ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}" PROPERTIES IMPORTED_LOCATION_DEBUG "${${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_DEBUG}") + endif(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY_DEBUG) + if(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY) + set_target_properties("ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}" PROPERTIES IMPORTED_LOCATION "${${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY}") + endif(${ICU_PUBLIC_VAR_NS}_${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_LIBRARY) + set_property(TARGET ICU::ICU APPEND PROPERTY INTERFACE_LINK_LIBRARIES "ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}") +# set_target_properties("ICU::${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}" PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR}") + endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) + endif(NOT CMAKE_VERSION VERSION_LESS "3.0.0") +endif(${ICU_PUBLIC_VAR_NS}_FOUND) + +mark_as_advanced( + ${ICU_PUBLIC_VAR_NS}_INCLUDE_DIR + ${ICU_PUBLIC_VAR_NS}_LIBRARY +) + +########## ########## + +########## ########## + +########## Private ########## +function(_icu_extract_locale_from_rb _BUNDLE_SOURCE _RETURN_VAR_NAME) + file(READ "${_BUNDLE_SOURCE}" _BUNDLE_CONTENTS) + string(REGEX REPLACE "//[^\n]*\n" "" _BUNDLE_CONTENTS_WITHOUT_COMMENTS ${_BUNDLE_CONTENTS}) + string(REGEX REPLACE "[ \t\n]" "" _BUNDLE_CONTENTS_WITHOUT_COMMENTS_AND_SPACES ${_BUNDLE_CONTENTS_WITHOUT_COMMENTS}) + string(REGEX MATCH "^([a-zA-Z_-]+)(:table)?{" LOCALE_FOUND ${_BUNDLE_CONTENTS_WITHOUT_COMMENTS_AND_SPACES}) + set("${_RETURN_VAR_NAME}" "${CMAKE_MATCH_1}" PARENT_SCOPE) +endfunction(_icu_extract_locale_from_rb) + +########## Public ########## + +# +# Prototype: +# icu_generate_resource_bundle([NAME ] [PACKAGE] [DESTINATION ] [FILES ]) +# +# Common arguments: +# - NAME : name of output package and to create dummy targets +# - FILES ... : list of resource bundles sources +# - DEPENDS ... : required to package as library (shared or static), a list of cmake parent targets to link to +# Note: only (PREVIOUSLY DECLARED) add_executable and add_library as dependencies +# - DESTINATION : optional, directory where to install final binary file(s) +# - FORMAT : optional, one of none (ICU4C binary format, default), java (plain java) or xliff (XML), see below +# +# Arguments depending on FORMAT: +# - none (default): +# * PACKAGE : if present, package all resource bundles together. Default is to stop after building individual *.res files +# * TYPE : one of : +# + common or archive (default) : archive all ressource bundles into a single .dat file +# + library or dll : assemble all ressource bundles into a separate and loadable library (.dll/.so) +# + static : integrate all ressource bundles to targets designed by DEPENDS parameter (as a static library) +# * NO_SHARED_FLAGS : only with TYPE in ['library', 'dll', 'static'], do not append ICU_C(XX)_SHARED_FLAGS to targets given as DEPENDS argument +# - JAVA: +# * BUNDLE : required, prefix for generated classnames +# - XLIFF: +# (none) +# + +# +# For an archive, the idea is to generate the following dependencies: +# +# root.txt => root.res \ +# | +# en.txt => en.res | +# | => pkglist.txt => application.dat +# fr.txt => fr.res | +# | +# and so on / +# +# Lengend: 'A => B' means B depends on A +# +# Steps (correspond to arrows): +# 1) genrb (from .txt to .res) +# 2) generate a file text (pkglist.txt) with all .res files to put together +# 3) build final archive (from *.res/pkglist.txt to .dat) +# + +function(icu_generate_resource_bundle) + + ##### ##### + find_program(${ICU_PUBLIC_VAR_NS}_GENRB_EXECUTABLE genrb HINTS ${${ICU_PRIVATE_VAR_NS}_HINTS}) + find_program(${ICU_PUBLIC_VAR_NS}_PKGDATA_EXECUTABLE pkgdata HINTS ${${ICU_PRIVATE_VAR_NS}_HINTS}) + + if(NOT ${ICU_PUBLIC_VAR_NS}_GENRB_EXECUTABLE) + message(FATAL_ERROR "genrb not found") + endif(NOT ${ICU_PUBLIC_VAR_NS}_GENRB_EXECUTABLE) + if(NOT ${ICU_PUBLIC_VAR_NS}_PKGDATA_EXECUTABLE) + message(FATAL_ERROR "pkgdata not found") + endif(NOT ${ICU_PUBLIC_VAR_NS}_PKGDATA_EXECUTABLE) + ##### ##### + + ##### ##### + set(TARGET_SEPARATOR "+") + set(__FUNCTION__ "icu_generate_resource_bundle") + set(PACKAGE_TARGET_PREFIX "ICU${TARGET_SEPARATOR}PKG") + set(RESOURCE_TARGET_PREFIX "ICU${TARGET_SEPARATOR}RB") + ##### ##### + + ##### ##### + # filename extension of built resource bundle (without dot) + set(BUNDLES__SUFFIX "res") + set(BUNDLES_JAVA_SUFFIX "java") + set(BUNDLES_XLIFF_SUFFIX "xlf") + # alias: none (default) = common = archive ; dll = library ; static + set(PKGDATA__ALIAS "") + set(PKGDATA_COMMON_ALIAS "") + set(PKGDATA_ARCHIVE_ALIAS "") + set(PKGDATA_DLL_ALIAS "LIBRARY") + set(PKGDATA_LIBRARY_ALIAS "LIBRARY") + set(PKGDATA_STATIC_ALIAS "STATIC") + # filename prefix of built package + set(PKGDATA__PREFIX "") + set(PKGDATA_LIBRARY_PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}") + set(PKGDATA_STATIC_PREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}") + # filename extension of built package (with dot) + set(PKGDATA__SUFFIX ".dat") + set(PKGDATA_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}") + set(PKGDATA_STATIC_SUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}") + # pkgdata option mode specific + set(PKGDATA__OPTIONS "-m" "common") + set(PKGDATA_STATIC_OPTIONS "-m" "static") + set(PKGDATA_LIBRARY_OPTIONS "-m" "library") + # cmake library type for output package + set(PKGDATA_LIBRARY__TYPE "") + set(PKGDATA_LIBRARY_STATIC_TYPE STATIC) + set(PKGDATA_LIBRARY_LIBRARY_TYPE SHARED) + ##### ##### + + include(CMakeParseArguments) + cmake_parse_arguments( + PARSED_ARGS # output variable name + # options (true/false) (default value: false) + "PACKAGE;NO_SHARED_FLAGS" + # univalued parameters (default value: "") + "NAME;DESTINATION;TYPE;FORMAT;BUNDLE" + # multivalued parameters (default value: "") + "FILES;DEPENDS" + ${ARGN} + ) + + # assert(${PARSED_ARGS_NAME} != "") + if(NOT PARSED_ARGS_NAME) + message(FATAL_ERROR "${__FUNCTION__}(): no name given, NAME parameter missing") + endif(NOT PARSED_ARGS_NAME) + + # assert(length(PARSED_ARGS_FILES) > 0) + list(LENGTH PARSED_ARGS_FILES PARSED_ARGS_FILES_LEN) + if(PARSED_ARGS_FILES_LEN LESS 1) + message(FATAL_ERROR "${__FUNCTION__}() expects at least 1 resource bundle as FILES argument, 0 given") + endif(PARSED_ARGS_FILES_LEN LESS 1) + + string(TOUPPER "${PARSED_ARGS_FORMAT}" UPPER_FORMAT) + # assert(${UPPER_FORMAT} in ['', 'java', 'xlif']) + if(NOT DEFINED BUNDLES_${UPPER_FORMAT}_SUFFIX) + message(FATAL_ERROR "${__FUNCTION__}(): unknown FORMAT '${PARSED_ARGS_FORMAT}'") + endif(NOT DEFINED BUNDLES_${UPPER_FORMAT}_SUFFIX) + + if(UPPER_FORMAT STREQUAL "JAVA") + # assert(${PARSED_ARGS_BUNDLE} != "") + if(NOT PARSED_ARGS_BUNDLE) + message(FATAL_ERROR "${__FUNCTION__}(): java bundle name expected, BUNDLE parameter missing") + endif(NOT PARSED_ARGS_BUNDLE) + endif(UPPER_FORMAT STREQUAL "JAVA") + + if(PARSED_ARGS_PACKAGE) + # assert(${PARSED_ARGS_FORMAT} == "") + if(PARSED_ARGS_FORMAT) + message(FATAL_ERROR "${__FUNCTION__}(): packaging is only supported for binary format, not xlif neither java outputs") + endif(PARSED_ARGS_FORMAT) + + string(TOUPPER "${PARSED_ARGS_TYPE}" UPPER_MODE) + # assert(${UPPER_MODE} in ['', 'common', 'archive', 'dll', library']) + if(NOT DEFINED PKGDATA_${UPPER_MODE}_ALIAS) + message(FATAL_ERROR "${__FUNCTION__}(): unknown TYPE '${PARSED_ARGS_TYPE}'") + else(NOT DEFINED PKGDATA_${UPPER_MODE}_ALIAS) + set(TYPE "${PKGDATA_${UPPER_MODE}_ALIAS}") + endif(NOT DEFINED PKGDATA_${UPPER_MODE}_ALIAS) + + # Package name: strip file extension if present + get_filename_component(PACKAGE_NAME_WE ${PARSED_ARGS_NAME} NAME_WE) + # Target name to build package + set(PACKAGE_TARGET_NAME "${PACKAGE_TARGET_PREFIX}${TARGET_SEPARATOR}${PACKAGE_NAME_WE}") + # Target name to build intermediate list file + set(PACKAGE_LIST_TARGET_NAME "${PACKAGE_TARGET_NAME}${TARGET_SEPARATOR}PKGLIST") + # Directory (absolute) to set as "current directory" for genrb (does not include package directory, -p) + # We make our "cook" there to prevent any conflict + if(DEFINED CMAKE_PLATFORM_ROOT_BIN) # CMake < 2.8.10 + set(RESOURCE_GENRB_CHDIR_DIR "${CMAKE_PLATFORM_ROOT_BIN}/${PACKAGE_TARGET_NAME}.dir/") + else(DEFINED CMAKE_PLATFORM_ROOT_BIN) # CMake >= 2.8.10 + set(RESOURCE_GENRB_CHDIR_DIR "${CMAKE_PLATFORM_INFO_DIR}/${PACKAGE_TARGET_NAME}.dir/") + endif(DEFINED CMAKE_PLATFORM_ROOT_BIN) + # Directory (absolute) where resource bundles are built: concatenation of RESOURCE_GENRB_CHDIR_DIR and package name + set(RESOURCE_OUTPUT_DIR "${RESOURCE_GENRB_CHDIR_DIR}/${PACKAGE_NAME_WE}/") + # Output (relative) path for built package + if(MSVC AND TYPE STREQUAL PKGDATA_LIBRARY_ALIAS) + set(PACKAGE_OUTPUT_PATH "${RESOURCE_GENRB_CHDIR_DIR}/${PACKAGE_NAME_WE}/${PKGDATA_${TYPE}_PREFIX}${PACKAGE_NAME_WE}${PKGDATA_${TYPE}_SUFFIX}") + else(MSVC AND TYPE STREQUAL PKGDATA_LIBRARY_ALIAS) + set(PACKAGE_OUTPUT_PATH "${RESOURCE_GENRB_CHDIR_DIR}/${PKGDATA_${TYPE}_PREFIX}${PACKAGE_NAME_WE}${PKGDATA_${TYPE}_SUFFIX}") + endif(MSVC AND TYPE STREQUAL PKGDATA_LIBRARY_ALIAS) + # Output (absolute) path for the list file + set(PACKAGE_LIST_OUTPUT_PATH "${RESOURCE_GENRB_CHDIR_DIR}/pkglist.txt") + + file(MAKE_DIRECTORY "${RESOURCE_OUTPUT_DIR}") + else(PARSED_ARGS_PACKAGE) + set(RESOURCE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/") +# set(RESOURCE_GENRB_CHDIR_DIR "UNUSED") + endif(PARSED_ARGS_PACKAGE) + + set(TARGET_RESOURCES ) + set(COMPILED_RESOURCES_PATH ) + set(COMPILED_RESOURCES_BASENAME ) + foreach(RESOURCE_SOURCE ${PARSED_ARGS_FILES}) + _icu_extract_locale_from_rb(${RESOURCE_SOURCE} RESOURCE_NAME_WE) + get_filename_component(SOURCE_BASENAME ${RESOURCE_SOURCE} NAME) + get_filename_component(ABSOLUTE_SOURCE ${RESOURCE_SOURCE} ABSOLUTE) + + if(UPPER_FORMAT STREQUAL "XLIFF") + if(RESOURCE_NAME_WE STREQUAL "root") + set(XLIFF_LANGUAGE "en") + else(RESOURCE_NAME_WE STREQUAL "root") + string(REGEX REPLACE "[^a-z].*$" "" XLIFF_LANGUAGE "${RESOURCE_NAME_WE}") + endif(RESOURCE_NAME_WE STREQUAL "root") + endif(UPPER_FORMAT STREQUAL "XLIFF") + + ##### ##### + set(RESOURCE_TARGET_NAME "${RESOURCE_TARGET_PREFIX}${TARGET_SEPARATOR}${PARSED_ARGS_NAME}${TARGET_SEPARATOR}${RESOURCE_NAME_WE}") + + set(RESOURCE_OUTPUT__PATH "${RESOURCE_NAME_WE}.res") + if(RESOURCE_NAME_WE STREQUAL "root") + set(RESOURCE_OUTPUT_JAVA_PATH "${PARSED_ARGS_BUNDLE}.java") + else(RESOURCE_NAME_WE STREQUAL "root") + set(RESOURCE_OUTPUT_JAVA_PATH "${PARSED_ARGS_BUNDLE}_${RESOURCE_NAME_WE}.java") + endif(RESOURCE_NAME_WE STREQUAL "root") + set(RESOURCE_OUTPUT_XLIFF_PATH "${RESOURCE_NAME_WE}.xlf") + + set(GENRB__OPTIONS "") + set(GENRB_JAVA_OPTIONS "-j" "-b" "${PARSED_ARGS_BUNDLE}") + set(GENRB_XLIFF_OPTIONS "-x" "-l" "${XLIFF_LANGUAGE}") + ##### ##### + + # build .txt from .res + if(PARSED_ARGS_PACKAGE) + add_custom_command( + OUTPUT "${RESOURCE_OUTPUT_DIR}${RESOURCE_OUTPUT_${UPPER_FORMAT}_PATH}" + COMMAND ${CMAKE_COMMAND} -E chdir ${RESOURCE_GENRB_CHDIR_DIR} ${${ICU_PUBLIC_VAR_NS}_GENRB_EXECUTABLE} ${GENRB_${UPPER_FORMAT}_OPTIONS} -d ${PACKAGE_NAME_WE} ${ABSOLUTE_SOURCE} + DEPENDS ${RESOURCE_SOURCE} + ) + else(PARSED_ARGS_PACKAGE) + add_custom_command( + OUTPUT "${RESOURCE_OUTPUT_DIR}${RESOURCE_OUTPUT_${UPPER_FORMAT}_PATH}" + COMMAND ${${ICU_PUBLIC_VAR_NS}_GENRB_EXECUTABLE} ${GENRB_${UPPER_FORMAT}_OPTIONS} -d ${RESOURCE_OUTPUT_DIR} ${ABSOLUTE_SOURCE} + DEPENDS ${RESOURCE_SOURCE} + ) + endif(PARSED_ARGS_PACKAGE) + # dummy target (ICU+RB++) for each locale to build the .res file from its .txt by the add_custom_command above + add_custom_target( + "${RESOURCE_TARGET_NAME}" ALL + COMMENT "" + DEPENDS "${RESOURCE_OUTPUT_DIR}${RESOURCE_OUTPUT_${UPPER_FORMAT}_PATH}" + SOURCES ${RESOURCE_SOURCE} + ) + + if(PARSED_ARGS_DESTINATION AND NOT PARSED_ARGS_PACKAGE) + install(FILES "${RESOURCE_OUTPUT_DIR}${RESOURCE_OUTPUT_${UPPER_FORMAT}_PATH}" DESTINATION ${PARSED_ARGS_DESTINATION} PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) + endif(PARSED_ARGS_DESTINATION AND NOT PARSED_ARGS_PACKAGE) + + list(APPEND TARGET_RESOURCES "${RESOURCE_TARGET_NAME}") + list(APPEND COMPILED_RESOURCES_PATH "${RESOURCE_OUTPUT_DIR}${RESOURCE_OUTPUT_${UPPER_FORMAT}_PATH}") + list(APPEND COMPILED_RESOURCES_BASENAME "${RESOURCE_NAME_WE}.${BUNDLES_${UPPER_FORMAT}_SUFFIX}") + endforeach(RESOURCE_SOURCE) + # convert semicolon separated list to a space separated list + # NOTE: if the pkglist.txt file starts (or ends?) with a whitespace, pkgdata add an undefined symbol (named _) for it + string(REPLACE ";" " " COMPILED_RESOURCES_BASENAME "${COMPILED_RESOURCES_BASENAME}") + + if(PARSED_ARGS_PACKAGE) + # create a text file (pkglist.txt) with the list of the *.res to package together + add_custom_command( + OUTPUT "${PACKAGE_LIST_OUTPUT_PATH}" + COMMAND ${CMAKE_COMMAND} -E echo "${COMPILED_RESOURCES_BASENAME}" > "${PACKAGE_LIST_OUTPUT_PATH}" + DEPENDS ${COMPILED_RESOURCES_PATH} + ) + # run pkgdata from pkglist.txt + add_custom_command( + OUTPUT "${PACKAGE_OUTPUT_PATH}" + COMMAND ${CMAKE_COMMAND} -E chdir ${RESOURCE_GENRB_CHDIR_DIR} ${${ICU_PUBLIC_VAR_NS}_PKGDATA_EXECUTABLE} -F ${PKGDATA_${TYPE}_OPTIONS} -s ${PACKAGE_NAME_WE} -p ${PACKAGE_NAME_WE} ${PACKAGE_LIST_OUTPUT_PATH} + DEPENDS "${PACKAGE_LIST_OUTPUT_PATH}" + VERBATIM + ) + if(PKGDATA_LIBRARY_${TYPE}_TYPE) + # assert(${PARSED_ARGS_DEPENDS} != "") + if(NOT PARSED_ARGS_DEPENDS) + message(FATAL_ERROR "${__FUNCTION__}(): static and library mode imply a list of targets to link to, DEPENDS parameter missing") + endif(NOT PARSED_ARGS_DEPENDS) + add_library(${PACKAGE_TARGET_NAME} ${PKGDATA_LIBRARY_${TYPE}_TYPE} IMPORTED) + if(MSVC) + string(REGEX REPLACE "${PKGDATA_LIBRARY_SUFFIX}\$" "${CMAKE_IMPORT_LIBRARY_SUFFIX}" PACKAGE_OUTPUT_LIB "${PACKAGE_OUTPUT_PATH}") + set_target_properties(${PACKAGE_TARGET_NAME} PROPERTIES IMPORTED_LOCATION ${PACKAGE_OUTPUT_PATH} IMPORTED_IMPLIB ${PACKAGE_OUTPUT_LIB}) + else(MSVC) + set_target_properties(${PACKAGE_TARGET_NAME} PROPERTIES IMPORTED_LOCATION ${PACKAGE_OUTPUT_PATH}) + endif(MSVC) + foreach(DEPENDENCY ${PARSED_ARGS_DEPENDS}) + target_link_libraries(${DEPENDENCY} ${PACKAGE_TARGET_NAME}) + if(NOT PARSED_ARGS_NO_SHARED_FLAGS) + get_property(ENABLED_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) + list(LENGTH "${ENABLED_LANGUAGES}" ENABLED_LANGUAGES_LENGTH) + if(ENABLED_LANGUAGES_LENGTH GREATER 1) + message(WARNING "Project has more than one language enabled, skip automatic shared flags appending") + else(ENABLED_LANGUAGES_LENGTH GREATER 1) + set_property(TARGET "${DEPENDENCY}" APPEND PROPERTY COMPILE_FLAGS "${${ICU_PUBLIC_VAR_NS}_${ENABLED_LANGUAGES}_SHARED_FLAGS}") + endif(ENABLED_LANGUAGES_LENGTH GREATER 1) + endif(NOT PARSED_ARGS_NO_SHARED_FLAGS) + endforeach(DEPENDENCY) + # http://www.mail-archive.com/cmake-commits@cmake.org/msg01135.html + set(PACKAGE_INTERMEDIATE_TARGET_NAME "${PACKAGE_TARGET_NAME}${TARGET_SEPARATOR}DUMMY") + # dummy intermediate target (ICU+PKG++DUMMY) to link the package to the produced library by running pkgdata (see add_custom_command above) + add_custom_target( + ${PACKAGE_INTERMEDIATE_TARGET_NAME} + COMMENT "" + DEPENDS "${PACKAGE_OUTPUT_PATH}" + ) + add_dependencies("${PACKAGE_TARGET_NAME}" "${PACKAGE_INTERMEDIATE_TARGET_NAME}") + else(PKGDATA_LIBRARY_${TYPE}_TYPE) + # dummy target (ICU+PKG+) to run pkgdata (see add_custom_command above) + add_custom_target( + "${PACKAGE_TARGET_NAME}" ALL + COMMENT "" + DEPENDS "${PACKAGE_OUTPUT_PATH}" + ) + endif(PKGDATA_LIBRARY_${TYPE}_TYPE) + # dummy target (ICU+PKG++PKGLIST) to build the file pkglist.txt + add_custom_target( + "${PACKAGE_LIST_TARGET_NAME}" ALL + COMMENT "" + DEPENDS "${PACKAGE_LIST_OUTPUT_PATH}" + ) + # package => pkglist.txt + add_dependencies("${PACKAGE_TARGET_NAME}" "${PACKAGE_LIST_TARGET_NAME}") + # pkglist.txt => *.res + add_dependencies("${PACKAGE_LIST_TARGET_NAME}" ${TARGET_RESOURCES}) + + if(PARSED_ARGS_DESTINATION) + install(FILES "${PACKAGE_OUTPUT_PATH}" DESTINATION ${PARSED_ARGS_DESTINATION} PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) + endif(PARSED_ARGS_DESTINATION) + endif(PARSED_ARGS_PACKAGE) + +endfunction(icu_generate_resource_bundle) + +########## ########## + +########## ########## + +if(${ICU_PUBLIC_VAR_NS}_DEBUG) + + function(icudebug _VARNAME) + if(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) + message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = ${${ICU_PUBLIC_VAR_NS}_${_VARNAME}}") + else(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) + message("${ICU_PUBLIC_VAR_NS}_${_VARNAME} = ") + endif(DEFINED ${ICU_PUBLIC_VAR_NS}_${_VARNAME}) + endfunction(icudebug) + + # IN (args) + icudebug("FIND_COMPONENTS") + icudebug("FIND_REQUIRED") + icudebug("FIND_QUIETLY") + icudebug("FIND_VERSION") + + # OUT + # Found + icudebug("FOUND") + # Flags + icudebug("C_FLAGS") + icudebug("CPP_FLAGS") + icudebug("CXX_FLAGS") + icudebug("C_SHARED_FLAGS") + icudebug("CPP_SHARED_FLAGS") + icudebug("CXX_SHARED_FLAGS") + # Linking + icudebug("INCLUDE_DIRS") + icudebug("LIBRARIES") + # Version + icudebug("VERSION_MAJOR") + icudebug("VERSION_MINOR") + icudebug("VERSION_PATCH") + icudebug("VERSION") + # _(FOUND|LIBRARY) + set(${ICU_PRIVATE_VAR_NS}_COMPONENT_VARIABLES "FOUND" "LIBRARY" "LIBRARY_RELEASE" "LIBRARY_DEBUG") + foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT ${${ICU_PRIVATE_VAR_NS}_COMPONENTS}) + string(TOUPPER "${${ICU_PRIVATE_VAR_NS}_COMPONENT}" ${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT) + foreach(${ICU_PRIVATE_VAR_NS}_COMPONENT_VARIABLE ${${ICU_PRIVATE_VAR_NS}_COMPONENT_VARIABLES}) + icudebug("${${ICU_PRIVATE_VAR_NS}_UPPER_COMPONENT}_${${ICU_PRIVATE_VAR_NS}_COMPONENT_VARIABLE}") + endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT_VARIABLE) + endforeach(${ICU_PRIVATE_VAR_NS}_COMPONENT) + +endif(${ICU_PUBLIC_VAR_NS}_DEBUG) + +########## ########## diff --git a/CMake/GenerateCMakeExports.cmake b/CMake/GenerateCMakeExports.cmake index 2cc3de4c..453ecc02 100644 --- a/CMake/GenerateCMakeExports.cmake +++ b/CMake/GenerateCMakeExports.cmake @@ -2,7 +2,7 @@ # and 'DCMTKConfig.cmake'. These files are created within the build tree # but also are installed with DCMTK. # The files can be utilized (no matter whether they are installed or just -# located within the build tree) by external projects in order to use +# located within the build tree) by external projects in order to use # the related DCMTK build. # In order to accomplish that, the files provide hints to the external project # which libraries and executables are available, and which build options have @@ -13,11 +13,11 @@ # DCMTKTargets.cmake will contain list of available DCMTK executables and libs # DCMTKConfigVersion.cmake provides checking of DCMTK version compatibility # DCMTKConfig.cmake will contain options used to build this DCMTK package -# -# + # Get and store all executable targets to DCMTKTargets.cmake within build's main dir GET_PROPERTY(DCMTK_EXECUTABLE_TARGETS GLOBAL PROPERTY DCMTK_EXECUTABLE_TARGETS) EXPORT(TARGETS ${DCMTK_EXECUTABLE_TARGETS} APPEND FILE ${DCMTK_BUILD_CMKDIR}/DCMTKTargets.cmake) + # Get and store libraries to DCMTKTargets.cmake within the build's main dir GET_PROPERTY(DCMTK_LIBRARY_TARGETS GLOBAL PROPERTY DCMTK_LIBRARY_TARGETS) EXPORT(TARGETS ${DCMTK_LIBRARY_TARGETS} APPEND FILE ${DCMTK_BUILD_CMKDIR}/DCMTKTargets.cmake) @@ -71,11 +71,11 @@ ENDFOREACH(module) SET(DCMTK_CONFIG_CODE "####### Expanded from \@DCMTK_CONFIG_CODE\@ #######\n") SET(DCMTK_CONFIG_CODE "${DCMTK_CONFIG_CODE}list(APPEND DCMTK_INCLUDE_DIRS \"\${PACKAGE_PREFIX_DIR}/include\")\n") SET(DCMTK_CONFIG_CODE "${DCMTK_CONFIG_CODE}##################################################") -SET(dcmtk_install_config ${CMAKE_BINARY_DIR}/CMakeFiles/DCMTKConfig.cmake) +SET(DCMTK_INSTALL_CONFIG ${CMAKE_BINARY_DIR}/CMakeFiles/DCMTKConfig.cmake) # Actually configure file and set rule to install it to installation subdir CONFIGURE_PACKAGE_CONFIG_FILE( CMake/DCMTKConfig.cmake.in - ${dcmtk_install_config} + ${DCMTK_INSTALL_CONFIG} INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/${DCMTK_INSTALL_CMKDIR} PATH_VARS DCMTK_CMKDIR_CONFIG DCMTK_INCLUDE_DIR_CONFIGS NO_CHECK_REQUIRED_COMPONENTS_MACRO) diff --git a/CMake/GenerateDCMTKConfigure.cmake b/CMake/GenerateDCMTKConfigure.cmake index c936b4d0..a31cc53d 100644 --- a/CMake/GenerateDCMTKConfigure.cmake +++ b/CMake/GenerateDCMTKConfigure.cmake @@ -55,6 +55,50 @@ ELSE(DCMTK_WIDE_CHAR_MAIN_FUNCTION) MESSAGE(STATUS "Info: Wide char main function for command line tools will be disabled") ENDIF(DCMTK_WIDE_CHAR_MAIN_FUNCTION) +IF(NOT DCMTK_ENABLE_CHARSET_CONVERSION) + SET(DCMTK_ENABLE_CHARSET_CONVERSION_DOCSTRING "Select character set conversion implementation.") + IF(DCMTK_WITH_ICONV) + IF(DCMTK_WITH_ICU) + MESSAGE(WARNING "Warning: Both ICU and the libiconv are available, using libiconv. Modify DCMTK_ENABLE_CHARSET_CONVERSION for switching to ICU") + ENDIF() + SET(DCMTK_ENABLE_CHARSET_CONVERSION "libiconv" CACHE STRING "${DCMTK_ENABLE_CHARSET_CONVERSION_DOCSTRING}") + ELSEIF(DCMTK_WITH_ICU) + SET(DCMTK_ENABLE_CHARSET_CONVERSION "ICU" CACHE STRING "${DCMTK_ENABLE_CHARSET_CONVERSION_DOCSTRING}") + ELSEIF(DCMTK_WITH_STDLIBC_ICONV) + SET(DCMTK_ENABLE_CHARSET_CONVERSION "stdlibc (iconv)" CACHE STRING "${DCMTK_ENABLE_CHARSET_CONVERSION_DOCSTRING}") + ELSE() + SET(DCMTK_ENABLE_CHARSET_CONVERSION "" CACHE STRING "${DCMTK_ENABLE_CHARSET_CONVERSION_DOCSTRING}") + ENDIF() +ENDIF() + +SET(DCMTK_ENABLE_CHARSET_CONVERSION_ALTERNATIVES) +IF(DCMTK_WITH_ICONV) + LIST(APPEND DCMTK_ENABLE_CHARSET_CONVERSION_ALTERNATIVES "libiconv") +ENDIF() +IF(DCMTK_WITH_ICU) + LIST(APPEND DCMTK_ENABLE_CHARSET_CONVERSION_ALTERNATIVES "ICU") +ENDIF() +IF(DCMTK_WITH_STDLIBC_ICONV) + LIST(APPEND DCMTK_ENABLE_CHARSET_CONVERSION_ALTERNATIVES "stdlibc (iconv)") +ENDIF() +SET_PROPERTY(CACHE DCMTK_ENABLE_CHARSET_CONVERSION PROPERTY STRINGS ${DCMTK_ENABLE_CHARSET_CONVERSION_ALTERNATIVES} "") + +IF(DCMTK_ENABLE_CHARSET_CONVERSION STREQUAL "libiconv" OR DCMTK_ENABLE_CHARSET_CONVERSION STREQUAL "DCMTK_CHARSET_CONVERSION_ICONV") + MESSAGE(STATUS "Info: Building DCMTK with character set conversion support using libiconv") + SET(DCMTK_ENABLE_CHARSET_CONVERSION "DCMTK_CHARSET_CONVERSION_ICONV") + SET(CHARSET_CONVERSION_LIBS ${LIBICONV_LIBS}) +ELSEIF(DCMTK_ENABLE_CHARSET_CONVERSION STREQUAL "ICU" OR DCMTK_ENABLE_CHARSET_CONVERSION STREQUAL "DCMTK_CHARSET_CONVERSION_ICU") + MESSAGE(STATUS "Info: Building DCMTK with character set conversion support using the ICU") + SET(DCMTK_ENABLE_CHARSET_CONVERSION "DCMTK_CHARSET_CONVERSION_ICU") + SET(CHARSET_CONVERSION_LIBS ${ICU_LIBS}) +ELSEIF(DCMTK_ENABLE_CHARSET_CONVERSION STREQUAL "stdlibc (iconv)" OR DCMTK_ENABLE_CHARSET_CONVERSION STREQUAL "DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV") + MESSAGE(STATUS "Info: Building DCMTK with character set conversion support using builtin iconv functions from the C standard library") + SET(DCMTK_ENABLE_CHARSET_CONVERSION "DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV") +ELSE() + MESSAGE(STATUS "Info: Building DCMTK without character set conversion support") + SET(DCMTK_ENABLE_CHARSET_CONVERSION OFF) +ENDIF() + # Standard C++ headers (currently hard-coded) #IF(VTK_USE_ANSI_STDLIB) SET(USE_STD_CXX_INCLUDES 1) diff --git a/CMake/dcmtkPrepare.cmake b/CMake/dcmtkPrepare.cmake index e66ac8a0..679d6074 100644 --- a/CMake/dcmtkPrepare.cmake +++ b/CMake/dcmtkPrepare.cmake @@ -9,9 +9,9 @@ SET(DCMTK_CONFIGURATION_DONE true) # Minimum CMake version required CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -IF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.5.2) - SET(CMAKE_BACKWARDS_COMPATIBILITY 3.5.2 CACHE STRING "Latest version of CMake when this project was released." FORCE) -ENDIF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.5.2) +IF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.7.2) + SET(CMAKE_BACKWARDS_COMPATIBILITY 3.7.2 CACHE STRING "Latest version of CMake when this project was released." FORCE) +ENDIF(CMAKE_BACKWARDS_COMPATIBILITY GREATER 3.7.2) # CMAKE_BUILD_TYPE is set to value "Release" if none is specified by the # selected build file generator. For those generators that support multiple @@ -42,7 +42,7 @@ SET(DCMTK_MINOR_VERSION 6) SET(DCMTK_BUILD_VERSION 1) # The ABI is not guaranteed to be stable between different snapshots/releases, # so this particular version number is increased for each snapshot or release. -SET(DCMTK_ABI_VERSION 9) +SET(DCMTK_ABI_VERSION 11) # Package "release" settings (some are currently unused and, therefore, disabled) SET(DCMTK_PACKAGE_NAME "dcmtk") @@ -78,6 +78,7 @@ OPTION(DCMTK_WITH_ZLIB "Configure DCMTK with support for ZLIB." ON) OPTION(DCMTK_WITH_OPENSSL "Configure DCMTK with support for OPENSSL." ON) OPTION(DCMTK_WITH_SNDFILE "Configure DCMTK with support for SNDFILE." ON) OPTION(DCMTK_WITH_ICONV "Configure DCMTK with support for ICONV." ON) +OPTION(DCMTK_WITH_ICU "Configure DCMTK with support for ICU." ON) IF(NOT WIN32) OPTION(DCMTK_WITH_WRAP "Configure DCMTK with support for WRAP." ON) ENDIF(NOT WIN32) @@ -93,11 +94,11 @@ OPTION(DCMTK_WIDE_CHAR_MAIN_FUNCTION "Build command line tools with wide char ma # configured the the opposite way since most users won't be interested in using # the external default dictionary if it is already compiled in. IF(WIN32 OR MINGW) - OPTION(DCMTK_ENABLE_BUILTIN_DICTIONARY "Configure DCMTK with compiled-in data dictionary" ON) - OPTION(DCMTK_ENABLE_EXTERNAL_DICTIONARY "Configure DCMTK to load external dictionary from default path on startup" OFF) + OPTION(DCMTK_ENABLE_BUILTIN_DICTIONARY "Configure DCMTK with compiled-in data dictionary." ON) + OPTION(DCMTK_ENABLE_EXTERNAL_DICTIONARY "Configure DCMTK to load external dictionary from default path on startup." OFF) ELSE(WIN32 or MINGW) # built-in dictionary turned off on Unix per default - OPTION(DCMTK_ENABLE_BUILTIN_DICTIONARY "Configure DCMTK with compiled-in data dictionary" OFF) - OPTION(DCMTK_ENABLE_EXTERNAL_DICTIONARY "Configure DCMTK to load external dictionary from default path on startup" ON) + OPTION(DCMTK_ENABLE_BUILTIN_DICTIONARY "Configure DCMTK with compiled-in data dictionary." OFF) + OPTION(DCMTK_ENABLE_EXTERNAL_DICTIONARY "Configure DCMTK to load external dictionary from default path on startup." ON) ENDIF(WIN32 OR MINGW) if (NOT DCMTK_ENABLE_EXTERNAL_DICTIONARY AND NOT DCMTK_ENABLE_BUILTIN_DICTIONARY) MESSAGE(WARNING "Either external or built-in dictionary should be enabled, otherwise dictionary must be loaded manually on startup!") @@ -212,7 +213,7 @@ IF(COMMAND CMAKE_POLICY) ENDIF(COMMAND CMAKE_POLICY) # pass optional build date to compiler -ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2016-06-30\\\") +ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2017-02-28\\\") # make OFString(NULL) safe by default ADD_DEFINITIONS(-DUSE_NULL_SAFE_OFSTRING) diff --git a/CMake/osconfig.h.in b/CMake/osconfig.h.in index 2b6325d8..bfe7e5c0 100644 --- a/CMake/osconfig.h.in +++ b/CMake/osconfig.h.in @@ -887,6 +887,20 @@ /* Define if we are compiling with libiconv support. */ #cmakedefine WITH_LIBICONV +/* Define if the C standard library has iconv builtin. */ +#cmakedefine WITH_STDLIBC_ICONV + +/* Define if we are compiling with ICU support. */ +#cmakedefine WITH_ICU + +/* character set conversion constants. */ +#define DCMTK_CHARSET_CONVERSION_ICU 1 +#define DCMTK_CHARSET_CONVERSION_ICONV 2 +#define DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV 3 + +/* Define to select character set conversion implementation. */ +#cmakedefine DCMTK_ENABLE_CHARSET_CONVERSION @DCMTK_ENABLE_CHARSET_CONVERSION@ + /* Define if the second argument to iconv() is const */ #cmakedefine LIBICONV_SECOND_ARGUMENT_CONST @LIBICONV_SECOND_ARGUMENT_CONST@ diff --git a/CMakeLists.txt b/CMakeLists.txt index e79ed779..b54f69a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ INCLUDE(CMake/dcmtkPrepare.cmake NO_POLICY_SCOPE) SET(DCMTK_MODULES ofstd oflog dcmdata dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr - dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract + dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract dcmpmap CACHE STRING "List of modules that should be built.") #----------------------------------------------------------------------------- @@ -67,6 +67,8 @@ INSTALL(FILES ${DCMTK_BINARY_DIR}/config/include/dcmtk/config/osconfig.h INSTALL(FILES ANNOUNCE CHANGES COPYRIGHT CREDITS FAQ HISTORY VERSION DESTINATION ${DCMTK_INSTALL_DOCDIR} COMPONENT doc) +INSTALL(DIRECTORY docs/ DESTINATION ${DCMTK_INSTALL_DOCDIR} + COMPONENT doc FILES_MATCHING PATTERN "CHANGES.???") #----------------------------------------------------------------------------- # Create an install configuration files for external projects @@ -91,14 +93,14 @@ IF(HAVE_CONFIGURE_PACKAGE_CONFIG_FILE AND HAVE_WRITE_BASIC_PACKAGE_VERSION_FILE) # Create and configure CMake export files INCLUDE(CMake/GenerateCMakeExports.cmake) - # ${dcmtk_install_config} and ${dcmtk_config_version} are + # ${DCMTK_INSTALL_CONFIG} and ${DCMTK_CONFIG_VERSION} are # defined within CMake/GenerateCMakeExports.cmake. # Install DCMTKTargets.cmake to install tree INSTALL(EXPORT DCMTKTargets FILE DCMTKTargets.cmake DESTINATION ${DCMTK_INSTALL_CMKDIR} COMPONENT cmake) - # Install DCMTKConfigVersion.cmake - INSTALL(FILES ${dcmtk_install_config} ${dcmtk_config_version} + # Install DCMTKConfig.cmake and DCMTKConfigVersion.cmake + INSTALL(FILES ${DCMTK_INSTALL_CONFIG} ${DCMTK_CONFIG_VERSION} DESTINATION ${DCMTK_INSTALL_CMKDIR} COMPONENT cmake) ELSE(HAVE_CONFIGURE_PACKAGE_CONFIG_FILE AND HAVE_WRITE_BASIC_PACKAGE_VERSION_FILE) @@ -110,8 +112,8 @@ ELSE(HAVE_CONFIGURE_PACKAGE_CONFIG_FILE AND HAVE_WRITE_BASIC_PACKAGE_VERSION_FIL CONFIGURE_FILE(${DCMTK_SOURCE_DIR}/CMake/DCMTKConfig.cmake26.in ${DCMTK_BINARY_DIR}/DCMTKConfig.cmake @ONLY) - # Install DCMTK's CMake configuration file - INSTALL(FILES ${DCMTK_BINARY_DIR}/DCMTKConfig.cmake + # Install DCMTKConfig.cmake and DCMTKConfigVersion.cmake + INSTALL(FILES ${DCMTK_BINARY_DIR}/DCMTKConfig.cmake ${DCMTK_BINARY_DIR}/DCMTKConfigVersion.cmake DESTINATION ${DCMTK_INSTALL_CMKDIR} COMPONENT cmake) diff --git a/COPYRIGHT b/COPYRIGHT index de2a236d..a73c4cb6 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -477,7 +477,7 @@ The dcmrt sub-package is covered by the following copyright: --------------------------------------------------------------------------- -Copyright (c) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany +Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany All rights reserved. @@ -511,7 +511,7 @@ Parts of the dcmsr sub-package are covered by the following copyright: --------------------------------------------------------------------------- -Copyright (c) 2015-2016, J. Riesmeier, Oldenburg, Germany +Copyright (C) 2015-2016, J. Riesmeier, Oldenburg, Germany All rights reserved. Redistribution and use in source and binary forms, with or without @@ -589,7 +589,7 @@ which comes with the following original copyright: --------------------------------------------------------------------------- -Copyright © 2005–2010, Pascal Getreuer +Copyright (C) 2005-2010, Pascal Getreuer All rights reserved. Redistribution and use in source and binary forms, with or without modification, diff --git a/CREDITS b/CREDITS index c67e7c04..b83ff574 100644 --- a/CREDITS +++ b/CREDITS @@ -26,7 +26,7 @@ J. Riesmeier: The work on the DCMTK is supported by Joerg Riesmeier (Oldenburg, who now works as a freelancer. M. Malaterre: The GDCM developer Mathieu Malaterre (Lyon, France) regularly - reports possible issues to the DCMTK team. He is also responsible for + reports possible issues to the DCMTK team. He was also responsible for packaging the DCMTK library and tools for the Debian operating system. Open Connections: The work on the DCMTK is supported by employees of the Open @@ -55,4 +55,4 @@ YXLON: The work on the initial version of the DICONDE data dictionary was Please note that this list does not claim to be exhaustive. Just send us an email if you think that you or your company/organization should also be listed. -DCMTK Team, 2016-06-08 +DCMTK Team, 2017-01-31 diff --git a/Makefile b/Makefile index 83aaaf4d..84ee6b0d 100644 --- a/Makefile +++ b/Makefile @@ -9,43 +9,43 @@ include $(configdir)/Makefile.def .NOTPARALLEL: -all: config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all +all: config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all dcmpmap-all -libsrc-all: ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all +libsrc-all: ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all dcmpmap-libsrc-all -tests-all: config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all +tests-all: config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all dcmpmap-tests-all -install: config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmtk-install-doc install-man +install: config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmpmap-install dcmtk-install-doc install-man install-all: install install-lib install-html -install-bin: config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin +install-bin: config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin dcmpmap-install-bin -install-doc: config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc +install-doc: config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc dcmpmap-install-doc -install-data: config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data +install-data: config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data dcmpmap-install-data -install-etc: config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc +install-etc: config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc dcmpmap-install-etc -install-lib: config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib +install-lib: config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib dcmpmap-install-lib -install-include: config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include +install-include: config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include dcmpmap-install-include -install-support: config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support +install-support: config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support dcmpmap-install-support check: tests-all $(MAKE) -s check-nosilent -check-nosilent: config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check +check-nosilent: config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check dcmpmap-check check-exhaustive: tests-all $(MAKE) -s check-nosilent-exhaustive -check-nosilent-exhaustive: config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dcmtract-check-exhaustive +check-nosilent-exhaustive: config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dcmtract-check-exhaustive dcmpmap-check-exhaustive dcmtk-install-doc: $(configdir)/mkinstalldirs $(DESTDIR)$(docdir) - for file in ANNOUNCE CHANGES COPYRIGHT CREDITS FAQ HISTORY VERSION; do \ + for file in ANNOUNCE CHANGES COPYRIGHT CREDITS FAQ HISTORY VERSION docs/CHANGES.???; do \ $(INSTALL_DATA) $$file $(DESTDIR)$(docdir) ;\ done @@ -91,7 +91,7 @@ help: @echo "" @echo "The following modules are available:" @echo "" - @echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract" + @echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap" config-all: (cd config && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all) @@ -873,6 +873,45 @@ dcmtract-check: dcmtract-check-exhaustive: (cd dcmtract && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive) +dcmpmap-all: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all) + +dcmpmap-libsrc-all: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" libsrc-all) + +dcmpmap-tests-all: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" tests-all) + +dcmpmap-install: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install) + +dcmpmap-install-bin: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-bin) + +dcmpmap-install-doc: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-doc) + +dcmpmap-install-data: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-data) + +dcmpmap-install-etc: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-etc) + +dcmpmap-install-lib: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-lib) + +dcmpmap-install-include: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-include) + +dcmpmap-install-support: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-support) + +dcmpmap-check: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check) + +dcmpmap-check-exhaustive: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive) + dependencies: -(cd config && $(MAKE) dependencies) (cd ofstd && $(MAKE) dependencies) @@ -894,6 +933,7 @@ dependencies: (cd dcmpstat && $(MAKE) dependencies) (cd dcmrt && $(MAKE) dependencies) (cd dcmtract && $(MAKE) dependencies) + (cd dcmpmap && $(MAKE) dependencies) clean: (cd ofstd && $(MAKE) clean) @@ -915,6 +955,7 @@ clean: (cd dcmpstat && $(MAKE) clean) (cd dcmrt && $(MAKE) clean) (cd dcmtract && $(MAKE) clean) + (cd dcmpmap && $(MAKE) clean) (cd doxygen && $(MAKE) clean) -(cd config && $(MAKE) clean) rm -f $(TRASH) @@ -939,6 +980,7 @@ distclean: (cd dcmpstat && $(MAKE) distclean) (cd dcmrt && $(MAKE) distclean) (cd dcmtract && $(MAKE) distclean) + (cd dcmpmap && $(MAKE) distclean) (cd doxygen && $(MAKE) distclean) -(cd config && $(MAKE) distclean) rm -f $(TRASH) diff --git a/README b/README index d8317ef0..452a5de1 100644 --- a/README +++ b/README @@ -16,13 +16,15 @@ DCMTK contains the following sub-packages, each in its own sub-directory: dcmjpeg - a compression/decompression library and utility apps dcmjpls - a compression/decompression library and utility apps dcmnet - a networking library and utility apps + dcmpmap - a library for working with parametric map objects dcmpstat - a presentation state library and utility apps dcmqrdb - an image database server dcmrt - a radiation therapy library and utility apps dcmseg - a library for working with segmentation objects dcmsign - a digital signature library and utility apps - dcmsr - a structured report library and utility apps + dcmsr - a structured reporting library and utility apps dcmtls - security extensions for the network library + dcmtract - a library for working with tractography results dcmwlm - a modality worklist database server oflog - a logging library based on log4cplus ofstd - a library of general purpose classes diff --git a/VERSION b/VERSION index b0cf8e9c..a2f470fd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.6.1_20160630 +3.6.1_20170228 diff --git a/config/Makefile.def.in b/config/Makefile.def.in index cbec746a..b5edc496 100644 --- a/config/Makefile.def.in +++ b/config/Makefile.def.in @@ -52,10 +52,10 @@ DEBUG = @DEBUG@ # # We want the old behavior of OFString(NULL) for now, no crashes. -GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2016-06-30\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS +GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2017-02-28\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS # -# ARCH defines special machine archtecture compiler settings +# ARCH defines special machine architecture compiler settings # (e.g. -arch i386 on NeXT) # @@ -79,11 +79,10 @@ ZLIBLIBS = @ZLIBLIBS@ XMLLIBS = @XMLLIBS@ TCPWRAPPERLIBS = @TCPWRAPPERLIBS@ SNDFILELIBS = @SNDFILELIBS@ -ICONVLIBS = @ICONVLIBS@ +CHARCONVLIBS = @CHARCONVLIBS@ LIBEXT = @LIBEXT@ BINEXT = @BINEXT@ STRIP = @STRIP@ -DCMTK_ENABLE_BUILTIN_DICTIONARY= @DCMTK_ENABLE_BUILTIN_DICTIONARY@ # # for clean and distclean @@ -91,7 +90,7 @@ DCMTK_ENABLE_BUILTIN_DICTIONARY= @DCMTK_ENABLE_BUILTIN_DICTIONARY@ TRASH = *~ "\#*\#" *.bak core DISTTRASH = $(TRASH) Makefile *.cache *.log *.status -includes = -I. -I$(srcdir) -I$(top_srcdir)/include -I$(configdir)/include $(LOCALINCLUDES) +includes = -I. -I$(srcdir) -I$(top_srcdir)/include -I$(configdir)/include $(LOCALINCLUDES) @CHARCONVINCLUDES@ defines = $(GLOBALDEFS) $(LOCALDEFS) $(DEBUG) $(LOCALDEBUG) diff --git a/config/arith.cc b/config/arith.cc index 17eded59..78069444 100644 --- a/config/arith.cc +++ b/config/arith.cc @@ -518,6 +518,18 @@ int main( int argc, char** argv ) out << "#define CONFIG_ARITH_H" << '\n'; out << '\n'; + // workaround to let digits10 be a compile time constant + out << "#define DCMTK_SIGNED_CHAR_DIGITS10 " << OFstatic_cast( int, ( CHAR_BIT - 1 ) * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_UNSIGNED_CHAR_DIGITS10 " << OFstatic_cast( int, CHAR_BIT * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_SIGNED_SHORT_DIGITS10 " << OFstatic_cast( int, ( CHAR_BIT * sizeof( signed short ) - 1 ) * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_UNSIGNED_SHORT_DIGITS10 " << OFstatic_cast( int, CHAR_BIT * sizeof( unsigned short ) * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_SIGNED_INT_DIGITS10 " << OFstatic_cast( int, ( CHAR_BIT * sizeof( signed int ) - 1 ) * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_UNSIGNED_INT_DIGITS10 " << OFstatic_cast( int, CHAR_BIT * sizeof( unsigned int ) * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_SIGNED_LONG_DIGITS10 " << OFstatic_cast( int, ( CHAR_BIT * sizeof( signed long ) - 1 ) * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_UNSIGNED_LONG_DIGITS10 " << OFstatic_cast( int, CHAR_BIT * sizeof( unsigned long ) * .30102999566398119521373889472449 ) << OFendl; + out << "#define DCMTK_FLOAT_MAX_DIGITS10 " << OFstatic_cast( int, FLT_MANT_DIG * .30102999566398119521373889472449 + 2 ) << OFendl; + out << "#define DCMTK_DOUBLE_MAX_DIGITS10 " << OFstatic_cast( int, DBL_MANT_DIG * .30102999566398119521373889472449 + 2 ) << OFendl; + COUT << "--" << OFendl; COUT << "-- " << STD_NAMESPACE setfill( ' ' ) << STD_NAMESPACE setw(17) << ' ' diff --git a/config/configure b/config/configure index 158cc871..61c03887 100755 --- a/config/configure +++ b/config/configure @@ -624,7 +624,6 @@ ac_includes_default="\ #endif" ac_subst_vars='LTLIBOBJS -DCMTK_ENABLE_BUILTIN_DICTIONARY DEBUG ICONVLIBS SNDFILELIBS @@ -635,6 +634,9 @@ MATHLIBS PNGLIBS TIFFLIBS OPENSSLLIBS +CHARCONVLIBS +CHARCONVINCLUDES +ICU_CONFIG LIBOBJS EGREP GREP @@ -738,6 +740,9 @@ with_libsndfileinc with_libsndfile with_libiconvinc with_libiconv +with_libicuinc +with_libicu +enable_charconv with_cxx11_stl ' ac_precious_vars='build_alias @@ -1381,6 +1386,9 @@ Optional Features: --enable-builtin-dict enable loading of built-in dictionary --disable-builtin-dict don't load built-in dictionary (default) --disable-rpath do not hardcode runtime library paths + --enable-charconv=TYPE enable character set conversion support + (libiconv/libicu/stdlibc/auto=default) + --disable-charconv disable character set conversion support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1410,6 +1418,9 @@ Optional Packages: --with-libiconvinc=DIR location of libiconv includes and libraries --with-libiconv include libiconv support (default: auto) --without-libiconv don't include libiconv support + --with-libicuinc=DIR location of libicu includes and libraries + --with-libicu include libicu support (default: auto) + --without-libicu don't include libicu support --with-cxx11-stl enable C++11 STL --without-cxx11-stl disable C++11 STL (default) @@ -12645,7 +12656,7 @@ if ${ac_cv_check_std_namespace+:} false; then : else ac_link_o='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.o $LIBS 1>&5' cat > conftest.$ac_ext < @@ -13117,7 +13128,7 @@ if ${ac_cv_check_class_template+:} false; then : else ac_link_o='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.o $LIBS 1>&5' cat > conftest.$ac_ext < @@ -13189,7 +13200,7 @@ if ${ac_cv_check_static_template_method+:} false; then : else ac_link_o='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.o $LIBS 1>&5' cat > conftest.$ac_ext < conftest.$ac_ext < @@ -13619,7 +13630,6 @@ if test "${enable_builtin_dict+set}" = set; then : yes) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - DCMTK_ENABLE_BUILTIN_DICTIONARY=true $as_echo "#define ENABLE_BUILTIN_DICTIONARY /**/" >>confdefs.h @@ -14613,6 +14623,7 @@ esac fi +WITH_LIBICONV=no ICONVLIBS="" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to include libiconv support" >&5 $as_echo_n "checking whether to include libiconv support... " >&6; } @@ -14621,16 +14632,12 @@ $as_echo_n "checking whether to include libiconv support... " >&6; } if test "${with_libiconv+set}" = set; then : withval=$with_libiconv; case "$withval" in yes) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define WITH_LIBICONV /**/" >>confdefs.h + WITH_LIBICONV=yes + $as_echo "#define WITH_LIBICONV 1" >>confdefs.h ICONVLIBS="-liconv -lcharset" ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } ;; esac else @@ -14648,21 +14655,18 @@ iconv_t cd = iconv_open("", ""); iconv(cd, NULL, NULL, NULL, NULL); iconv_close( } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - -$as_echo "#define WITH_LIBICONV /**/" >>confdefs.h + WITH_LIBICONV=yes + $as_echo "#define WITH_LIBICONV 1" >>confdefs.h ICONVLIBS="-liconv -lcharset" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$SAVELIBS" fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $WITH_LIBICONV" >&5 +$as_echo "$WITH_LIBICONV" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the second argument to iconv() is const" >&5 $as_echo_n "checking whether the second argument to iconv() is const... " >&6; } @@ -14693,6 +14697,291 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext LIBS="$SAVELIBS" +WITH_STDLIBC_ICONV=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C standard library provides iconv functionality" >&5 +$as_echo_n "checking whether the C standard library provides iconv functionality... " >&6; } +SAVELIBS="$LIBS" +LIBS="" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +iconv_t cd=iconv_open("","");iconv(cd,0,0,0,0);iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + WITH_STDLIBC_ICONV=yes + $as_echo "#define WITH_STDLIBC_ICONV 1" >>confdefs.h + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $WITH_STDLIBC_ICONV" >&5 +$as_echo "$WITH_STDLIBC_ICONV" >&6; } +LIBS="$SAVELIBS" + + + + +# Check whether --with-libicuinc was given. +if test "${with_libicuinc+set}" = set; then : + withval=$with_libicuinc; case $withval in #( + yes|no) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-libicuinc called without argument - will use default" >&5 +$as_echo "$as_me: WARNING: --with-libicuinc called without argument - will use default" >&2;} + ;; #( + *) : + + if test ! -d ${withval}; then + as_fn_error $? "called with --with-libicuinc but libicu base directory ${withval} does not exist or is not a directory." "$LINENO" 5 + fi + + CPPFLAGS="-I${withval}/include $CPPFLAGS" + LDFLAGS="-L${withval}/lib $LDFLAGS" + if test "x$dcmtk_cv_rpath_works" = "xyes"; then + LDFLAGS="-Wl,-rpath,${withval}/lib $LDFLAGS" + fi + ;; +esac + +fi + + +WITH_LIBICU=no + +# Check whether --with-libicu was given. +if test "${with_libicu+set}" = set; then : + withval=$with_libicu; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to include ICU support" >&5 +$as_echo_n "checking whether to include ICU support... " >&6; } + case "$withval" in + yes) + WITH_LIBICU=yes + $as_echo "#define WITH_LIBICU 1" >>confdefs.h + + ICULIBS="-licui18n -licuuc -licudata" + ;; + *) + ;; + esac +else + + if test -z "$ICU_CONFIG"; then + # Extract the first word of "icu-config", so it can be a program name with args. +set dummy icu-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ICU_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ICU_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ICU_CONFIG="$ICU_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ICU_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_ICU_CONFIG" && ac_cv_path_ICU_CONFIG="no" + ;; +esac +fi +ICU_CONFIG=$ac_cv_path_ICU_CONFIG +if test -n "$ICU_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ICU_CONFIG" >&5 +$as_echo "$ICU_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to include ICU support" >&5 +$as_echo_n "checking whether to include ICU support... " >&6; } + fi + if [ ! "$ICU_CONFIG" = "no" ]; then + ICU_VERSION=`$ICU_CONFIG --version` + VERSION_CHECK=`expr $ICU_VERSION \>\= 3.4.1` + if test VERSION_CHECK=1; then + WITH_LIBICU=yes + $as_echo "#define WITH_LIBICU 1" >>confdefs.h + + ICUINCLUDES=`$ICU_CONFIG --cppflags` + ICULIBS=`$ICU_CONFIG --ldflags` + fi + fi + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $WITH_LIBICU" >&5 +$as_echo "$WITH_LIBICU" >&6; } + + + + +CHARCONVINCLUDES="" +CHARCONVLIBS="" + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable character set conversion support" >&5 +$as_echo_n "checking whether to enable character set conversion support... " >&6; } +# Check whether --enable-charconv was given. +if test "${enable_charconv+set}" = set; then : + enableval=$enable_charconv; case "$enableval" in + yes|auto) + +if test "$WITH_LIBICONV" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libiconv" >&5 +$as_echo "yes, type=libiconv" >&6; } + CHARCONVLIBS="$ICONVLIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICONV" + +elif test "$WITH_LIBICU" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libicu" >&5 +$as_echo "yes, type=libicu" >&6; } + CHARCONVINCLUDES="$ICUINCLUDES" + CHARCONVLIBS="$ICULIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICU" + +elif test "$WITH_STDLIBC_ICONV" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=stdlibc" >&5 +$as_echo "yes, type=stdlibc" >&6; } + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + ;; + libiconv) + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libiconv" >&5 +$as_echo "yes, type=libiconv" >&6; } + CHARCONVLIBS="$ICONVLIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICONV" + + ;; + libicu) + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libicu" >&5 +$as_echo "yes, type=libicu" >&6; } + CHARCONVINCLUDES="$ICUINCLUDES" + CHARCONVLIBS="$ICULIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICU" + + ;; + stdlibc) + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=stdlibc" >&5 +$as_echo "yes, type=stdlibc" >&6; } + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV" + + ;; + no) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + *) + +if test "$WITH_LIBICONV" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libiconv" >&5 +$as_echo "yes, type=libiconv" >&6; } + CHARCONVLIBS="$ICONVLIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICONV" + +elif test "$WITH_LIBICU" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libicu" >&5 +$as_echo "yes, type=libicu" >&6; } + CHARCONVINCLUDES="$ICUINCLUDES" + CHARCONVLIBS="$ICULIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICU" + +elif test "$WITH_STDLIBC_ICONV" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=stdlibc" >&5 +$as_echo "yes, type=stdlibc" >&6; } + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + ;; + esac +else + +if test "$WITH_LIBICONV" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libiconv" >&5 +$as_echo "yes, type=libiconv" >&6; } + CHARCONVLIBS="$ICONVLIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICONV" + +elif test "$WITH_LIBICU" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=libicu" >&5 +$as_echo "yes, type=libicu" >&6; } + CHARCONVINCLUDES="$ICUINCLUDES" + CHARCONVLIBS="$ICULIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICU" + +elif test "$WITH_STDLIBC_ICONV" = "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, type=stdlibc" >&5 +$as_echo "yes, type=stdlibc" >&6; } + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi + + + + + +if [ ! -z "$DCMTK_ENABLE_CHARSET_CONVERSION" ]; then + +cat >>confdefs.h <<_ACEOF +#define DCMTK_ENABLE_CHARSET_CONVERSION $DCMTK_ENABLE_CHARSET_CONVERSION +_ACEOF + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++11 STL should be used" >&5 $as_echo_n "checking if the C++11 STL should be used... " >&6; } @@ -15019,7 +15308,6 @@ CXXFLAGS="$DEBUGCXXFLAGS $CXXFLAGS" - ac_config_files="$ac_config_files Makefile.def Makefile" cat >confcache <<\_ACEOF diff --git a/config/configure.in b/config/configure.in index d2c9c161..681ee68a 100644 --- a/config/configure.in +++ b/config/configure.in @@ -953,10 +953,6 @@ AC_ARG_ENABLE(builtin-dict, [ case "$enableval" in yes) AC_MSG_RESULT(yes) - dnl Remember for later evaluation when building dcmdata libary, i.e. for - dnl including the populated dictionary object and not the - dnl empty dummy dictionary in dcmdata - DCMTK_ENABLE_BUILTIN_DICTIONARY=true AC_DEFINE(ENABLE_BUILTIN_DICTIONARY, , [Define if we are compiling with built-in (compiled-in) dictionary enabled.]) ;; *) @@ -1247,7 +1243,8 @@ dnl Check for libiconv support dnl ------------------------------------------------------- AC_MY_LIB_PATH([libiconv]) - +AH_TEMPLATE(WITH_LIBICONV, [Define if we are compiling with libiconv support.]) +WITH_LIBICONV=no ICONVLIBS="" AC_MSG_CHECKING(whether to include libiconv support) AC_ARG_WITH(libiconv, @@ -1255,22 +1252,21 @@ AC_ARG_WITH(libiconv, AS_HELP_STRING([--without-libiconv], [don't include libiconv support])], [ case "$withval" in yes) - AC_MSG_RESULT(yes) - AC_DEFINE(WITH_LIBICONV, , [Define if we are compiling with libiconv support.]) + WITH_LIBICONV=yes + AC_DEFINE(WITH_LIBICONV) ICONVLIBS="-liconv -lcharset" ;; *) - AC_MSG_RESULT(no) ;; esac ], [ SAVELIBS="$LIBS" LIBS="$LIBS -liconv -lcharset" AC_TRY_LINK([#include ], [iconv_t cd = iconv_open("", ""); iconv(cd, NULL, NULL, NULL, NULL); iconv_close(cd);], - [ AC_MSG_RESULT(yes) - AC_DEFINE(WITH_LIBICONV, , [Define if we are compiling with libiconv support.]) - ICONVLIBS="-liconv -lcharset" ], - [AC_MSG_RESULT(no)]) + [ WITH_LIBICONV=yes + AC_DEFINE(WITH_LIBICONV) + ICONVLIBS="-liconv -lcharset" ]) LIBS="$SAVELIBS"] ) +AC_MSG_RESULT($WITH_LIBICONV) AC_MSG_CHECKING(whether the second argument to iconv() is const) SAVELIBS="$LIBS" @@ -1281,6 +1277,142 @@ AC_TRY_COMPILE([#include ], [iconv_t cd = iconv_open("", ""); const cha [AC_MSG_RESULT(no)]) LIBS="$SAVELIBS" +dnl ------------------------------------------------------- +dnl Check for iconv inside C standard library +dnl ------------------------------------------------------- + +AH_TEMPLATE([WITH_STDLIBC_ICONV], [Define if the C standard library has iconv builtin.])dnl +WITH_STDLIBC_ICONV=no +AC_MSG_CHECKING([whether the C standard library provides iconv functionality]) +SAVELIBS="$LIBS" +LIBS="" +AC_TRY_LINK([#include ], [iconv_t cd=iconv_open("","");iconv(cd,0,0,0,0);iconv_close(cd);], + [WITH_STDLIBC_ICONV=yes + AC_DEFINE(WITH_STDLIBC_ICONV)]) +AC_MSG_RESULT($WITH_STDLIBC_ICONV) +LIBS="$SAVELIBS" + +dnl ------------------------------------------------------- +dnl Check for libicu support +dnl ------------------------------------------------------- + +AC_MY_LIB_PATH([libicu]) +AH_TEMPLATE([WITH_LIBICU], [Define if we are compiling with ICU support.]) +WITH_LIBICU=no +AC_ARG_WITH(libicu, +[AS_HELP_STRING([--with-libicu], [include libicu support (default: auto)]) +AS_HELP_STRING([--without-libicu], [don't include libicu support])], +[ AC_MSG_CHECKING(whether to include ICU support) + case "$withval" in + yes) + WITH_LIBICU=yes + AC_DEFINE(WITH_LIBICU) + ICULIBS="-licui18n -licuuc -licudata" + ;; + *) + ;; + esac ], +[ + if test -z "$ICU_CONFIG"; then + AC_PATH_PROG(ICU_CONFIG, icu-config, no) + AC_MSG_CHECKING(whether to include ICU support) + fi + if [[ ! "$ICU_CONFIG" = "no" ]]; then + ICU_VERSION=`$ICU_CONFIG --version` + VERSION_CHECK=`expr $ICU_VERSION \>\= 3.4.1` + if test VERSION_CHECK=1; then + WITH_LIBICU=yes + AC_DEFINE(WITH_LIBICU) + ICUINCLUDES=`$ICU_CONFIG --cppflags` + ICULIBS=`$ICU_CONFIG --ldflags` + fi + fi +]) +AC_MSG_RESULT($WITH_LIBICU) + +dnl ------------------------------------------------------- +dnl character set conversion support +dnl ------------------------------------------------------- + +AH_VERBATIM([DCMTK_CHARSET_CONVERSION_CONSTANTS], [/* character set conversion constants. */ +#define DCMTK_CHARSET_CONVERSION_ICU 1 +#define DCMTK_CHARSET_CONVERSION_ICONV 2 +#define DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV 3]) + +CHARCONVINCLUDES="" +CHARCONVLIBS="" + +AC_DEFUN([AC_CHOOSE_CHARSET_LIBICONV], +[ + AC_MSG_RESULT([yes, type=libiconv]) + CHARCONVLIBS="$ICONVLIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICONV" +]) + +AC_DEFUN([AC_CHOOSE_CHARSET_LIBICU], +[ + AC_MSG_RESULT([yes, type=libicu]) + CHARCONVINCLUDES="$ICUINCLUDES" + CHARCONVLIBS="$ICULIBS" + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_ICU" +]) + +AC_DEFUN([AC_CHOOSE_CHARSET_STDLIBC_ICONV], +[ + AC_MSG_RESULT([yes, type=stdlibc]) + DCMTK_ENABLE_CHARSET_CONVERSION="DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV" +]) + +AC_DEFUN([AC_CHOOSE_CHARSET_IMPL], +[ +if test "$WITH_LIBICONV" = "yes"; then + AC_CHOOSE_CHARSET_LIBICONV() +elif test "$WITH_LIBICU" = "yes"; then + AC_CHOOSE_CHARSET_LIBICU() +elif test "$WITH_STDLIBC_ICONV" = "yes"; then + AC_CHOOSE_CHARSET_STDLIBC_ICONV() +else + AC_MSG_RESULT(no) +fi +]) + +AC_MSG_CHECKING(whether to enable character set conversion support) +AC_ARG_ENABLE(charconv, +[ --enable-charconv=TYPE enable character set conversion support + (libiconv/libicu/stdlibc/auto=default) + --disable-charconv disable character set conversion support], +[ case "$enableval" in + yes|auto) + AC_CHOOSE_CHARSET_IMPL() + ;; + libiconv) + AC_CHOOSE_CHARSET_LIBICONV() + ;; + libicu) + AC_CHOOSE_CHARSET_LIBICU() + ;; + stdlibc) + AC_CHOOSE_CHARSET_STDLIBC_ICONV() + ;; + no) + AC_MSG_RESULT(no) + ;; + *) + AC_CHOOSE_CHARSET_IMPL() + ;; + esac ], + [AC_CHOOSE_CHARSET_IMPL()] +) + +AC_SUBST(CHARCONVINCLUDES) +AC_SUBST(CHARCONVLIBS) + +if [[ ! -z "$DCMTK_ENABLE_CHARSET_CONVERSION" ]]; then + AC_DEFINE_UNQUOTED(DCMTK_ENABLE_CHARSET_CONVERSION, + [$DCMTK_ENABLE_CHARSET_CONVERSION], + [Define to select character set conversion implementation.]) +fi + dnl ------------------------------------------------------- dnl C++11 support dnl ------------------------------------------------------- @@ -1355,7 +1487,6 @@ AC_SUBST(TCPWRAPPERLIBS) AC_SUBST(SNDFILELIBS) AC_SUBST(ICONVLIBS) AC_SUBST(DEBUG) -AC_SUBST(DCMTK_ENABLE_BUILTIN_DICTIONARY) AC_OUTPUT(Makefile.def Makefile) diff --git a/config/docs/envvars.txt b/config/docs/envvars.txt index 2b1d0a5e..5486b0a7 100644 --- a/config/docs/envvars.txt +++ b/config/docs/envvars.txt @@ -33,21 +33,20 @@ DCMDICTPATH TCP_BUFFER_LENGTH Affected: dcmnet - Explanation: By default, DCMTK uses a TCP send and receive buffer - length of 64K. If the environment variable TCP_BUFFER_LENGTH is set, - it specifies an override for the TCP buffer length. The value is - specified in bytes, not in Kbytes. + Explanation: By default, DCMTK does not modify the TCP send and receive + buffer length, i.e. the operating system is responsible for selecting + appropriate values. If the environment variable TCP_BUFFER_LENGTH is + set, it specifies an override for the TCP buffer length. The value is + specified in bytes, not in Kbytes. If set to 0, a buffer length of 64K, + which was the default value for previous versions of the DCMTK, is used. TCP_NODELAY Affected: dcmnet - Explanation: If this environment variable contains a non-zero number, - the Nagle algorithm will not be disabled for TCP transport - connections. Also see documentation for macro - DONT_DISABLE_NAGLE_ALGORITHM in config/docs/macros.txt or - /usr/local/share/doc/dcmtk/macros.txt. - -TMPDIR - Affected: dcmnet - Explanation: Affects the implementation of the tempnam() emulation on - platforms where tempnam() is not defined. See tempnam(3S) man page - for a description. + Explanation: If this environment variable is set and contains a non-zero + number (e.g. "1"), the Nagle algorithm will be disabled for TCP transport + connections, which might result in better network performance on some + systems/environments, especially when many small network packets are to + be sent. If it is set and contains the number "0", the Nagle algorithm + will not be disabled. If the environment variable TCP_NODELAY is not set, + the default behavior applies (see compiler macro DISABLE_NAGLE_ALGORITHM + in config/docs/macros.txt or /usr/local/share/doc/dcmtk/macros.txt). diff --git a/config/docs/macros.txt b/config/docs/macros.txt index bad84b11..0133ee38 100644 --- a/config/docs/macros.txt +++ b/config/docs/macros.txt @@ -65,7 +65,7 @@ DCMTK_USE_CXX11_STL DICOMDIR_WITHOUT_BACKUP Affected: dcmdata Type of modification: Disables feature - Explanation: By default DCMTK creates a backup of an existing DICOMDIR + Explanation: By default, DCMTK creates a backup of an existing DICOMDIR (using the name DICOMDIR.$$$) when a DcmDicomDir object is written to file. The creation of the backup can be disabled with this macro. @@ -75,6 +75,19 @@ DISABLE_COMPRESSION_EXTENSION Explanation: Disables the support of compression (various transfer syntaxes) in dcmqrdb, a feature which is still experimental. +DISABLE_NAGLE_ALGORITHM + Affected: dcmnet + Type of modification: Disables feature + Explanation: By default, DCMTK does not disable the so-called Nagle + algorithm, which allows for improving the efficiency of TCP/IP networks + by reducing the number of packets that need to be sent over the network. + When compiled with this macro, the Nagle algorithm is disabled for each + DICOM transport connection. This was the default in earlier versions of + the DCMTK but does not seem to be appropriate anymore for most modern + operating systems. The default behavior can be changed by setting the + environment variable TCP_NODELAY accordingly (see config/docs/envvars.txt + or /usr/local/share/doc/dcmtk/envvars.txt). + DISABLE_OFSTD_ATOF Affected: all modules Type of modification: Disables feature @@ -108,34 +121,16 @@ DISABLE_PORT_PERMISSION_CHECK Therefore, this check can be disabled using this flag. DISABLE_RECV_TIMEOUT - Affected: dcmnet - Type of modification: Disables feature - Explanation: By default, DCMTK specifies a timeout of 60 seconds for - the recv() function. This is especially useful in cases where the - receiver (e.g. storescp) looses the connection to the sender because - the network cable is pulled (e.g. for a mobile device). This flag - disables the call to the setsockopt() function so that no timeout is - specified. + This macro is not supported anymore since the timeout for the recv() function + is now configurable at runtime. See global variable dcmSocketReceiveTimeout. DISABLE_SEND_TIMEOUT - Affected: dcmnet - Type of modification: Disables feature - Explanation: By default, DCMTK specifies a timeout of 60 seconds for - the send() function. This is especially useful in cases where the - sender (e.g. storescu) looses the connection to the receiver because - the network cable is pulled (e.g. for a mobile device). This flag - disables the call to the setsockopt() function so that no timeout is - specified. + This macro is not supported anymore since the timeout for the send() function + is now configurable at runtime. See global variable dcmSocketSendTimeout. DONT_DISABLE_NAGLE_ALGORITHM - Affected: dcmnet - Type of modification: Disables feature - Explanation: By default, DCMTK disables the so-called Nagle algorithm - for each DICOM transport connection. This provides a 2-4 times - performance improvement (WinNT4/SP4, 100Mbit/s Ethernet). Effects on - other environments are unknown. When compiled with this macro, the - code affecting the Nagle algorithm is disabled. See documentation - for environment variable TCP_NODELAY in config/docs/envvars.txt. + This macro is not supported anymore since the Nagle algorithm is no longer + disabled by default. See DISABLE_NAGLE_ALGORITHM for details. DONT_LOAD_EXTERNAL_DICTIONARIES Affected: dcmdata @@ -263,15 +258,6 @@ NO_PATIENTSTUDYONLY_SUPPORT Explanation: Disables support for the Patient/Study Only Query/Retrieve Model in dcmqrdb. -NO_WINDOWS95_ADDRESS_TRANSLATION_WORKAROUND - Affected: dcmnet - Type of modification: Disables feature - Explanation: Under Windows 95 gethostbyname() will not accept an IP - address e.g. "134.106.1.1". This appears to work without problems - with other Windows versions and several Unix variants. As a - workaround, DCMTK explicitly handles the IP address case. The - workaround can be disabled with this macro. - OFCONDITION_IMPLICIT_BOOL_CONVERSION Affected: ofstd Type of modification: Activates experimental or rarely used feature @@ -366,13 +352,6 @@ STARVIEW Explanation: Enables support for old StarView 2 GUI class library from Star Division. -STRICT_COMPARE - Affected: dcmqrdb - Type of modification: Activates experimental or rarely used feature - Explanation: By default, dcmqrdb ignores illegal leading and trailing - space characters when comparing UIDs. This behavior can be modified - by defining this macro. - SUPPRESS_CREATE_STAMP Affected: dcmdata Type of modification: Activates experimental or rarely used feature diff --git a/config/include/dcmtk/config/osconfig.h.in b/config/include/dcmtk/config/osconfig.h.in index bc3aeb6f..269b04ab 100644 --- a/config/include/dcmtk/config/osconfig.h.in +++ b/config/include/dcmtk/config/osconfig.h.in @@ -43,6 +43,14 @@ /* Define if >> is unsigned on the C compiler */ #undef C_RIGHTSHIFT_UNSIGNED +/* character set conversion constants. */ +#define DCMTK_CHARSET_CONVERSION_ICU 1 +#define DCMTK_CHARSET_CONVERSION_ICONV 2 +#define DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV 3 + +/* Define to select character set conversion implementation. */ +#undef DCMTK_ENABLE_CHARSET_CONVERSION + /* Define the DCMTK default path. */ #undef DCMTK_PREFIX @@ -1034,6 +1042,9 @@ typedef unsigned short ushort; /* Define if we are compiling with libiconv support. */ #undef WITH_LIBICONV +/* Define if we are compiling with ICU support. */ +#undef WITH_LIBICU + /* Define if we are compiling with libpng support. */ #undef WITH_LIBPNG @@ -1049,6 +1060,9 @@ typedef unsigned short ushort; /* Define if we are compiling with libsndfile support. */ #undef WITH_SNDFILE +/* Define if the C standard library has iconv builtin. */ +#undef WITH_STDLIBC_ICONV + /* Define if we are compiling with libwrap (TCP wrapper) support. */ #undef WITH_TCPWRAPPER diff --git a/config/modules b/config/modules index 698a4b11..16768209 100644 --- a/config/modules +++ b/config/modules @@ -1 +1 @@ -ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract +ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap diff --git a/config/rootconf b/config/rootconf index 581920a9..62343bcc 100755 --- a/config/rootconf +++ b/config/rootconf @@ -84,7 +84,7 @@ check-nosilent-exhaustive: $makecheckexhaustive dcmtk-install-doc: \$(configdir)/mkinstalldirs \$(DESTDIR)\$(docdir) - for file in ANNOUNCE CHANGES COPYRIGHT CREDITS FAQ HISTORY VERSION; do \\ + for file in ANNOUNCE CHANGES COPYRIGHT CREDITS FAQ HISTORY VERSION docs/CHANGES.???; do \\ \$(INSTALL_DATA) \$\$file \$(DESTDIR)\$(docdir) ;\\ done diff --git a/dcmdata/apps/CMakeLists.txt b/dcmdata/apps/CMakeLists.txt index 5394b1ec..2f7ba60f 100644 --- a/dcmdata/apps/CMakeLists.txt +++ b/dcmdata/apps/CMakeLists.txt @@ -2,13 +2,13 @@ INCLUDE_DIRECTORIES(${LIBXML_INCDIR}) # declare executables -FOREACH(PROGRAM dcm2xml dcmconv dcmcrle dcmdrle dcmdump dcmftest dcmgpdir dump2dcm xml2dcm pdf2dcm dcm2pdf img2dcm) +FOREACH(PROGRAM dcm2xml dcmconv dcmcrle dcmdrle dcmdump dcmftest dcmgpdir dump2dcm xml2dcm pdf2dcm dcm2pdf img2dcm dcm2json) DCMTK_ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}) ENDFOREACH(PROGRAM) DCMTK_ADD_EXECUTABLE(dcmodify dcmodify mdfconen mdfdsman) # make sure executables are linked to the corresponding libraries -FOREACH(PROGRAM dcm2xml dcmconv dcmcrle dcmdrle dcmdump dcmgpdir dcmodify dump2dcm xml2dcm pdf2dcm dcm2pdf img2dcm) +FOREACH(PROGRAM dcm2xml dcmconv dcmcrle dcmdrle dcmdump dcmgpdir dcmodify dump2dcm xml2dcm pdf2dcm dcm2pdf img2dcm dcm2json) DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmdata oflog ofstd) ENDFOREACH(PROGRAM) diff --git a/dcmdata/apps/Makefile.dep b/dcmdata/apps/Makefile.dep index 6f89b65c..03bd8513 100644 --- a/dcmdata/apps/Makefile.dep +++ b/dcmdata/apps/Makefile.dep @@ -1,3 +1,87 @@ +dcm2json.o: dcm2json.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmdata/dctk.h ../include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcswap.h \ + ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ + ../include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../include/dcmtk/dcmdata/dcistrma.h ../include/dcmtk/dcmdata/dcostrma.h \ + ../include/dcmtk/dcmdata/dcuid.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dcdicent.h \ + ../include/dcmtk/dcmdata/dchashdi.h ../include/dcmtk/dcmdata/dcdict.h \ + ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcstack.h ../include/dcmtk/dcmdata/dcelem.h \ + ../include/dcmtk/dcmdata/dcitem.h ../include/dcmtk/dcmdata/dclist.h \ + ../include/dcmtk/dcmdata/dcpcache.h ../include/dcmtk/dcmdata/dcmetinf.h \ + ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcsequen.h \ + ../include/dcmtk/dcmdata/dcfilefo.h ../include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../include/dcmtk/dcmdata/dcdirrec.h ../include/dcmtk/dcmdata/dcvrulup.h \ + ../include/dcmtk/dcmdata/dcvrul.h ../include/dcmtk/dcmdata/dcpixseq.h \ + ../include/dcmtk/dcmdata/dcofsetl.h ../include/dcmtk/dcmdata/dcbytstr.h \ + ../include/dcmtk/dcmdata/dcvrae.h ../include/dcmtk/dcmdata/dcvras.h \ + ../include/dcmtk/dcmdata/dcvrcs.h ../include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../include/dcmtk/dcmdata/dcvrds.h ../include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../include/dcmtk/dcmdata/dcvris.h ../include/dcmtk/dcmdata/dcvrtm.h \ + ../include/dcmtk/dcmdata/dcvrui.h ../include/dcmtk/dcmdata/dcvrur.h \ + ../include/dcmtk/dcmdata/dcchrstr.h ../include/dcmtk/dcmdata/dcvrlo.h \ + ../include/dcmtk/dcmdata/dcvrlt.h ../include/dcmtk/dcmdata/dcvrpn.h \ + ../include/dcmtk/dcmdata/dcvrsh.h ../include/dcmtk/dcmdata/dcvrst.h \ + ../include/dcmtk/dcmdata/dcvruc.h ../include/dcmtk/dcmdata/dcvrut.h \ + ../include/dcmtk/dcmdata/dcvrobow.h ../include/dcmtk/dcmdata/dcpixel.h \ + ../include/dcmtk/dcmdata/dcvrpobw.h ../include/dcmtk/dcmdata/dcovlay.h \ + ../include/dcmtk/dcmdata/dcvrat.h ../include/dcmtk/dcmdata/dcvrss.h \ + ../include/dcmtk/dcmdata/dcvrus.h ../include/dcmtk/dcmdata/dcvrsl.h \ + ../include/dcmtk/dcmdata/dcvrfl.h ../include/dcmtk/dcmdata/dcvrfd.h \ + ../include/dcmtk/dcmdata/dcvrof.h ../include/dcmtk/dcmdata/dcvrod.h \ + ../include/dcmtk/dcmdata/dcvrol.h ../include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmdata/dcjson.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h dcm2pdf.o: dcm2pdf.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../include/dcmtk/dcmdata/dctk.h ../include/dcmtk/dcmdata/dctypes.h \ @@ -161,7 +245,8 @@ dcm2xml.o: dcm2xml.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrfl.h ../include/dcmtk/dcmdata/dcvrfd.h \ ../include/dcmtk/dcmdata/dcvrof.h ../include/dcmtk/dcmdata/dcvrod.h \ ../include/dcmtk/dcmdata/dcvrol.h ../include/dcmtk/dcmdata/cmdlnarg.h \ - ../../ofstd/include/dcmtk/ofstd/ofchrenc.h + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h dcmconv.o: dcmconv.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../include/dcmtk/dcmdata/dctk.h ../include/dcmtk/dcmdata/dctypes.h \ @@ -244,7 +329,8 @@ dcmconv.o: dcmconv.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrof.h ../include/dcmtk/dcmdata/dcvrod.h \ ../include/dcmtk/dcmdata/dcvrol.h ../include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmdata/dcostrmz.h ../include/dcmtk/dcmdata/dcistrmz.h \ - ../../ofstd/include/dcmtk/ofstd/ofchrenc.h + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h dcmcrle.o: dcmcrle.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../include/dcmtk/dcmdata/dctk.h ../include/dcmtk/dcmdata/dctypes.h \ @@ -491,7 +577,8 @@ dcmdump.o: dcmdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrof.h ../include/dcmtk/dcmdata/dcvrod.h \ ../include/dcmtk/dcmdata/dcvrol.h ../include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmdata/dcistrmz.h \ - ../../ofstd/include/dcmtk/ofstd/ofchrenc.h + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h dcmftest.o: dcmftest.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../include/dcmtk/dcmdata/dcmetinf.h ../include/dcmtk/dcmdata/dcitem.h \ diff --git a/dcmdata/apps/Makefile.in b/dcmdata/apps/Makefile.in index 90bafb23..c68bb0c1 100644 --- a/dcmdata/apps/Makefile.in +++ b/dcmdata/apps/Makefile.in @@ -18,15 +18,15 @@ oflogdir = $(top_srcdir)/../oflog LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include LIBDIRS = -L$(top_srcdir)/libi2d -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc \ -L$(oflogdir)/libsrc -LOCALLIBS = -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(ICONVLIBS) +LOCALLIBS = -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(CHARCONVLIBS) LIBI2D = -li2d objs = dcmftest.o dcmconv.o dcmdump.o dump2dcm.o dcmgpdir.o dcm2xml.o \ xml2dcm.o dcmcrle.o dcmdrle.o dcmodify.o mdfdsman.o mdfconen.o \ - pdf2dcm.o dcm2pdf.o img2dcm.o + pdf2dcm.o dcm2pdf.o img2dcm.o dcm2json.o progs = dcmftest dcmconv dcmdump dump2dcm dcmgpdir dcm2xml xml2dcm dcmcrle \ - dcmdrle dcmodify pdf2dcm dcm2pdf img2dcm + dcmdrle dcmodify pdf2dcm dcm2pdf img2dcm dcm2json all: $(progs) @@ -71,6 +71,8 @@ dcm2pdf: dcm2pdf.o img2dcm: img2dcm.o $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $@.o $(LIBI2D) $(LOCALLIBS) $(MATHLIBS) $(LIBS) +dcm2json: dcm2json.o + $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $@.o $(LOCALLIBS) $(MATHLIBS) $(LIBS) install: install-bin diff --git a/dcmdata/apps/dcm2json.cc b/dcmdata/apps/dcm2json.cc new file mode 100644 index 00000000..3a6c8c53 --- /dev/null +++ b/dcmdata/apps/dcm2json.cc @@ -0,0 +1,278 @@ +/* +* +* Copyright (C) 2016-2017, OFFIS e.V. +* All rights reserved. See COPYRIGHT file for details. +* +* This software and supporting documentation were developed by +* +* OFFIS e.V. +* R&D Division Health +* Escherweg 2 +* D-26121 Oldenburg, Germany +* +* +* Module: dcmdata +* +* Author: Sebastian Grallert +* +* Purpose: Convert the contents of a DICOM file to JSON format +* +*/ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/dcmdata/dctk.h" +#include "dcmtk/dcmdata/cmdlnarg.h" + +#include "dcmtk/dcmdata/dcjson.h" +#include "dcmtk/ofstd/ofstream.h" +#include "dcmtk/ofstd/ofconapp.h" + +#ifdef WITH_ZLIB +#include /* for zlibVersion() */ +#endif +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION +#include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ +#endif + +#define OFFIS_CONSOLE_APPLICATION "dcm2json" +#define OFFIS_CONSOLE_DESCRIPTION "Convert DICOM file and data set to JSON" + +static OFLogger dcm2jsonLogger = OFLog::getLogger("dcmtk.apps." OFFIS_CONSOLE_APPLICATION); + +static char rcsid[] = "$dcmtk: " OFFIS_CONSOLE_APPLICATION " v" +OFFIS_DCMTK_VERSION " " OFFIS_DCMTK_RELEASEDATE " $"; + +// ******************************************** + +/* Function to call all writeJson() functions in DCMTK */ +static OFCondition writeFile(STD_NAMESPACE ostream &out, + const char *ifname, + DcmFileFormat *dfile, + const E_FileReadMode readMode, + const OFBool format, + const OFBool printMetaheaderInformation, + const OFBool checkAllStrings) +{ + OFCondition result = EC_IllegalParameter; + if ((ifname != NULL) && (dfile != NULL)) + { + DcmDataset *dset = dfile->getDataset(); + + /* write JSON document content */ + + if (readMode == ERM_dataset) + { + result = format + ? + dset->writeJson(out, DcmJsonFormatPretty(printMetaheaderInformation)) + : + dset->writeJson(out, DcmJsonFormatCompact(printMetaheaderInformation)) + ; + } + else + { + result = format + ? + dfile->writeJson(out, DcmJsonFormatPretty(printMetaheaderInformation)) + : + dfile->writeJson(out, DcmJsonFormatCompact(printMetaheaderInformation)) + ; + } + } + return result; +} + +#define SHORTCOL 3 +#define LONGCOL 20 + +int main(int argc, char *argv[]) +{ + OFBool opt_checkAllStrings = OFFalse; + OFBool opt_format = OFTrue; + OFBool opt_addMetaInformation = OFFalse; + + E_FileReadMode opt_readMode = ERM_autoDetect; + E_TransferSyntax opt_ixfer = EXS_Unknown; + OFString optStr; + + OFConsoleApplication app(OFFIS_CONSOLE_APPLICATION, OFFIS_CONSOLE_DESCRIPTION, rcsid); + OFCommandLine cmd; + cmd.setOptionColumns(LONGCOL, SHORTCOL); + cmd.setParamColumn(LONGCOL + SHORTCOL + 4); + + cmd.addParam("dcmfile-in", "DICOM input filename to be converted", OFCmdParam::PM_Mandatory); + cmd.addParam("jsonfile-out", "JSON output filename (default: stdout)", OFCmdParam::PM_Optional); + + cmd.addGroup("general options:", LONGCOL, SHORTCOL + 2); + cmd.addOption("--help", "-h", "print this help text and exit", OFCommandLine::AF_Exclusive); + cmd.addOption("--version", "print version information and exit", OFCommandLine::AF_Exclusive); + OFLog::addOptions(cmd); + + cmd.addGroup("input options:"); + cmd.addSubGroup("input file format:"); + cmd.addOption("--read-file", "+f", "read file format or data set (default)"); + cmd.addOption("--read-file-only", "+fo", "read file format only"); + cmd.addOption("--read-dataset", "-f", "read data set without file meta information"); + cmd.addSubGroup("input transfer syntax:"); + cmd.addOption("--read-xfer-auto", "-t=", "use TS recognition (default)"); + cmd.addOption("--read-xfer-detect", "-td", "ignore TS specified in the file meta header"); + cmd.addOption("--read-xfer-little", "-te", "read with explicit VR little endian TS"); + cmd.addOption("--read-xfer-big", "-tb", "read with explicit VR big endian TS"); + cmd.addOption("--read-xfer-implicit", "-ti", "read with implicit VR little endian TS"); + + cmd.addGroup("output options:"); + cmd.addSubGroup("output format:"); + cmd.addOption("--formatted-code", "+fc", "output file with human readable formatting (def.)"); + cmd.addOption("--compact-code", "-fc", "output without formatting (single line of code)"); + cmd.addOption("--write-meta", "+m", "write data set with meta information"); + + /* evaluate command line */ + prepareCmdLineArgs(argc, argv, OFFIS_CONSOLE_APPLICATION); + if (app.parseCommandLine(cmd, argc, argv)) + { + /* check exclusive options first */ + if (cmd.hasExclusiveOption()) + { + if (cmd.findOption("--version")) + { + app.printHeader(OFTrue /*print host identifier*/); + COUT << OFendl << "External libraries used:"; +#if !defined(WITH_ZLIB) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) + COUT << " none" << OFendl; +#else + COUT << OFendl; +#endif +#ifdef WITH_ZLIB + COUT << "- ZLIB, Version " << zlibVersion() << OFendl; +#endif +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; +#endif + return 0; + } + } + + /* general options */ + OFLog::configureFromCommandLine(cmd, app); + + /* input options */ + cmd.beginOptionBlock(); + if (cmd.findOption("--read-file")) opt_readMode = ERM_autoDetect; + if (cmd.findOption("--read-file-only")) opt_readMode = ERM_fileOnly; + if (cmd.findOption("--read-dataset")) opt_readMode = ERM_dataset; + cmd.endOptionBlock(); + + cmd.beginOptionBlock(); + if (cmd.findOption("--read-xfer-auto")) + opt_ixfer = EXS_Unknown; + if (cmd.findOption("--read-xfer-detect")) + dcmAutoDetectDatasetXfer.set(OFTrue); + if (cmd.findOption("--read-xfer-little")) + { + app.checkDependence("--read-xfer-little", "--read-dataset", opt_readMode == ERM_dataset); + opt_ixfer = EXS_LittleEndianExplicit; + } + if (cmd.findOption("--read-xfer-big")) + { + app.checkDependence("--read-xfer-big", "--read-dataset", opt_readMode == ERM_dataset); + opt_ixfer = EXS_BigEndianExplicit; + } + if (cmd.findOption("--read-xfer-implicit")) + { + app.checkDependence("--read-xfer-implicit", "--read-dataset", opt_readMode == ERM_dataset); + opt_ixfer = EXS_LittleEndianImplicit; + } + cmd.endOptionBlock(); + + /* format options */ + cmd.beginOptionBlock(); + if (cmd.findOption("--formatted-code")) + opt_format = OFTrue; + if (cmd.findOption("--compact-code")) + opt_format = OFFalse; + cmd.endOptionBlock(); + + /* meta option */ + if (cmd.findOption("--write-meta")) + opt_addMetaInformation = OFTrue; + } + + /* print resource identifier */ + OFLOG_DEBUG(dcm2jsonLogger, rcsid << OFendl); + + /* make sure data dictionary is loaded */ + if (!dcmDataDict.isDictionaryLoaded()) + { + OFLOG_WARN(dcm2jsonLogger, "no data dictionary loaded, check environment variable: " + << DCM_DICT_ENVIRONMENT_VARIABLE); + } + + int result = 0; + /* first parameter is treated as the input filename */ + const char *ifname = NULL; + cmd.getParam(1, ifname); + /* check input file */ + if ((ifname != NULL) && (strlen(ifname) > 0)) + { + /* read DICOM file or data set */ + DcmFileFormat dfile; + OFCondition status = dfile.loadFile(ifname, opt_ixfer, EGL_noChange, DCM_MaxReadLength, opt_readMode); + if (status.good()) + { + DcmDataset *dset = dfile.getDataset(); + OFString csetString; + if (dset->findAndGetOFStringArray(DCM_SpecificCharacterSet, csetString).good()) + { + if (csetString.compare("ISO_IR 192") != 0 && csetString.compare("ISO_IR 6") != 0) + { +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + /* convert all DICOM strings to UTF-8 */ + OFLOG_INFO(dcm2jsonLogger, "converting all element values that are affected by SpecificCharacterSet (0008,0005) to UTF-8"); + status = dset->convertToUTF8(); + if (status.bad()) + { + OFLOG_FATAL(dcm2jsonLogger, status.text() << ": converting file to UTF-8: " << ifname); + result = 4; + } +#else + OFLOG_FATAL(dcm2jsonLogger, "character set conversion not available"); + return 4; +#endif + } + } + if (result == 0) + { + /* if second parameter is present, it is treated as the output filename ("stdout" otherwise) */ + if (cmd.getParamCount() == 2) + { + const char *ofname = NULL; + cmd.getParam(2, ofname); + STD_NAMESPACE ofstream stream(ofname); + if (stream.good()) + { + /* write content in JSON format to file */ + if (writeFile(stream, ifname, &dfile, opt_readMode, opt_format, + opt_addMetaInformation, opt_checkAllStrings).bad()) + result = 2; + } + else + result = 1; + } + else + { + /* write content in JSON format to standard output */ + if (writeFile(COUT, ifname, &dfile, opt_readMode, opt_format, + opt_addMetaInformation, opt_checkAllStrings).bad()) + result = 3; + } + } + } + else + OFLOG_ERROR(dcm2jsonLogger, OFFIS_CONSOLE_APPLICATION << ": error (" << status.text() << ") reading file: " << ifname); + } + else + OFLOG_ERROR(dcm2jsonLogger, OFFIS_CONSOLE_APPLICATION << ": invalid filename: "); + + return result; +} diff --git a/dcmdata/apps/dcm2xml.cc b/dcmdata/apps/dcm2xml.cc index 66aa23cd..48d7e3c0 100644 --- a/dcmdata/apps/dcm2xml.cc +++ b/dcmdata/apps/dcm2xml.cc @@ -31,7 +31,7 @@ #ifdef WITH_ZLIB #include /* for zlibVersion() */ #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION #include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #endif @@ -95,7 +95,7 @@ static OFCondition writeFile(STD_NAMESPACE ostream &out, { OFLOG_WARN(dcm2xmlLogger, OFFIS_CONSOLE_APPLICATION << ": SpecificCharacterSet (0008,0005) " << "value '" << csetString << "' not supported ... quoting non-ASCII characters"); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION OFLOG_DEBUG(dcm2xmlLogger, "using option --convert-to-utf8 to convert the DICOM file to " "UTF-8 encoding might also help to solve this problem more appropriately"); #endif @@ -223,7 +223,7 @@ int main(int argc, char *argv[]) size_t opt_writeFlags = 0; OFBool opt_loadIntoMemory = OFFalse; OFBool opt_checkAllStrings = OFFalse; -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION OFBool opt_convertToUTF8 = OFFalse; #endif const char *opt_defaultCharset = NULL; @@ -268,7 +268,7 @@ int main(int argc, char *argv[]) cmd.addOption("--charset-assume", "+Ca", 1, "[c]harset: string", "assume charset c if no extended charset declared"); cmd.addOption("--charset-check-all", "+Cc", "check all data elements with string values\n(default: only PN, LO, LT, SH, ST, UC and UT)"); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION cmd.addOption("--convert-to-utf8", "+U8", "convert all element values that are affected\nby Specific Character Set (0008,0005) to UTF-8"); #endif cmd.addGroup("output options:"); @@ -303,7 +303,7 @@ int main(int argc, char *argv[]) { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used:"; -#if !defined(WITH_ZLIB) && !defined(WITH_LIBICONV) +#if !defined(WITH_ZLIB) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) COUT << " none" << OFendl; #else COUT << OFendl; @@ -311,7 +311,7 @@ int main(int argc, char *argv[]) #ifdef WITH_ZLIB COUT << "- ZLIB, Version " << zlibVersion() << OFendl; #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; #endif return 0; @@ -371,7 +371,7 @@ int main(int argc, char *argv[]) cmd.endOptionBlock(); if (cmd.findOption("--charset-check-all")) opt_checkAllStrings = OFTrue; -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (cmd.findOption("--convert-to-utf8")) opt_convertToUTF8 = OFTrue; #endif @@ -500,7 +500,7 @@ int main(int argc, char *argv[]) else if (charset == "hebrew") opt_defaultCharset = "ISO_IR 138"; } -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION DcmDataset *dset = dfile.getDataset(); /* convert all DICOM strings to UTF-8 (if requested) */ if (opt_convertToUTF8) diff --git a/dcmdata/apps/dcmconv.cc b/dcmdata/apps/dcmconv.cc index 73491092..46556dfa 100644 --- a/dcmdata/apps/dcmconv.cc +++ b/dcmdata/apps/dcmconv.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -40,7 +40,7 @@ #ifdef WITH_ZLIB #include /* for zlibVersion() */ #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION #include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #endif @@ -69,7 +69,7 @@ static DcmTagKey parseTagKey(const char *tagName) const DcmDictEntry *dicent = globalDataDict.findEntry(tagName); if (dicent == NULL) { - OFLOG_ERROR(dcmconvLogger, "unrecognised tag name: '" << tagName << "'"); + OFLOG_ERROR(dcmconvLogger, "unrecognized tag name: '" << tagName << "'"); tagKey = DCM_UndefinedTagKey; } else { tagKey = dicent->getKey(); @@ -105,10 +105,9 @@ int main(int argc, char *argv[]) #ifdef WITH_ZLIB OFCmdUnsignedInt opt_compressionLevel = 0; #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION const char *opt_convertToCharset = NULL; - OFBool opt_transliterate = OFFalse; - OFBool opt_discardIllegal = OFFalse; + size_t opt_conversionFlags = 0; #endif OFBool opt_noInvalidGroups = OFFalse; @@ -160,6 +159,15 @@ int main(int argc, char *argv[]) cmd.addSubGroup("handling of wrong delimitation items:"); cmd.addOption("--use-delim-items", "-rd", "use delimitation items from dataset (default)"); cmd.addOption("--replace-wrong-delim", "+rd", "replace wrong sequence/item delimitation items"); + cmd.addSubGroup("handling of illegal undefined length OB/OW elements:"); + cmd.addOption("--illegal-obow-rej", "-oi", "reject dataset with illegal element (default)"); + cmd.addOption("--illegal-obow-conv", "+oi", "convert undefined length OB/OW element to SQ"); + cmd.addSubGroup("handling of VOI LUT Sequence with OW VR and explicit length:"); + cmd.addOption("--illegal-voi-rej", "-vi", "reject dataset with illegal VOI LUT (default)"); + cmd.addOption("--illegal-voi-conv", "+vi", "convert illegal VOI LUT to SQ"); + cmd.addSubGroup("handling of explicit length pixel data for encaps. transfer syntaxes:"); + cmd.addOption("--abort-expl-pixdata", "-pe", "abort on explicit length pixel data (default)"); + cmd.addOption("--use-expl-pixdata", "+pe", "use explicit length pixel data"); cmd.addSubGroup("general handling of parser errors: "); cmd.addOption("--ignore-parse-errors", "+Ep", "try to recover from parse errors"); cmd.addOption("--handle-parse-errors", "-Ep", "handle parse errors and stop parsing (default)"); @@ -176,7 +184,7 @@ int main(int argc, char *argv[]) #endif cmd.addGroup("processing options:"); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION cmd.addSubGroup("specific character set:"); cmd.addOption("--convert-to-utf8", "+U8", "convert all element values that are affected\nby Specific Character Set (0008,0005) to UTF-8"); cmd.addOption("--convert-to-latin1", "+L1", "convert affected element values to ISO 8859-1"); @@ -236,7 +244,7 @@ int main(int argc, char *argv[]) { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used:"; -#if !defined(WITH_ZLIB) && !defined(WITH_LIBICONV) +#if !defined(WITH_ZLIB) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) COUT << " none" << OFendl; #else COUT << OFendl; @@ -244,7 +252,7 @@ int main(int argc, char *argv[]) #ifdef WITH_ZLIB COUT << "- ZLIB, Version " << zlibVersion() << OFendl; #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; #endif return 0; @@ -374,6 +382,38 @@ int main(int argc, char *argv[]) } cmd.endOptionBlock(); + cmd.beginOptionBlock(); + if (cmd.findOption("--illegal-obow-rej")) + { + dcmConvertUndefinedLengthOBOWtoSQ.set(OFFalse); + } + if (cmd.findOption("--illegal-obow-conv")) + { + dcmConvertUndefinedLengthOBOWtoSQ.set(OFTrue); + } + cmd.endOptionBlock(); + + cmd.beginOptionBlock(); + if (cmd.findOption("--illegal-voi-rej")) + { + dcmConvertVOILUTSequenceOWtoSQ.set(OFFalse); + } + if (cmd.findOption("--illegal-voi-conv")) + { + dcmConvertVOILUTSequenceOWtoSQ.set(OFTrue); + } + cmd.endOptionBlock(); + cmd.beginOptionBlock(); + if (cmd.findOption("--abort-expl-pixdata")) + { + dcmUseExplLengthPixDataForEncTS.set(OFFalse); + } + if (cmd.findOption("--use-expl-pixdata")) + { + dcmUseExplLengthPixDataForEncTS.set(OFTrue); + } + cmd.endOptionBlock(); + cmd.beginOptionBlock(); if (cmd.findOption("--ignore-parse-errors")) { @@ -421,7 +461,7 @@ int main(int argc, char *argv[]) #endif /* processing options */ -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION cmd.beginOptionBlock(); if (cmd.findOption("--convert-to-utf8")) opt_convertToCharset = "ISO_IR 192"; if (cmd.findOption("--convert-to-latin1")) opt_convertToCharset = "ISO_IR 100"; @@ -431,12 +471,12 @@ int main(int argc, char *argv[]) if (cmd.findOption("--transliterate")) { app.checkDependence("--transliterate", "one of the --convert-to-xxx options", opt_convertToCharset != NULL); - opt_transliterate = OFTrue; + opt_conversionFlags |= DCMTypes::CF_transliterate; } if (cmd.findOption("--discard-illegal")) { app.checkDependence("--discard-illegal", "one of the --convert-to-xxx options", opt_convertToCharset != NULL); - opt_discardIllegal = OFTrue; + opt_conversionFlags |= DCMTypes::CF_discardIllegal; } #endif if (cmd.findOption("--no-invalid-groups")) opt_noInvalidGroups = OFTrue; @@ -550,7 +590,7 @@ int main(int argc, char *argv[]) OFLOG_INFO(dcmconvLogger, "remove all elements with an invalid group number"); fileformat.removeInvalidGroups(); } -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (opt_convertToCharset != NULL) { OFString toCharset(opt_convertToCharset); @@ -558,7 +598,7 @@ int main(int argc, char *argv[]) OFLOG_INFO(dcmconvLogger, "converting all element values that are affected by " << "Specific Character Set (0008,0005) to '" << opt_convertToCharset << "'" << (toCharset.empty() ? " (ASCII)" : "")); - error = fileformat.convertCharacterSet(toCharset, opt_transliterate, opt_discardIllegal); + error = fileformat.convertCharacterSet(toCharset, opt_conversionFlags); if (error.bad()) { OFLOG_FATAL(dcmconvLogger, error.text() << ": processing file: " << opt_ifname); @@ -577,7 +617,12 @@ int main(int argc, char *argv[]) DcmXfer opt_oxferSyn(opt_oxfer); - dataset->chooseRepresentation(opt_oxfer, NULL); + error = dataset->chooseRepresentation(opt_oxfer, NULL); + if (error.bad()) + { + OFLOG_ERROR(dcmconvLogger, error.text()); + /* reporting a fatal error and returning with an error code follows next */ + } if (dataset->canWriteXfer(opt_oxfer)) { diff --git a/dcmdata/apps/dcmdump.cc b/dcmdata/apps/dcmdump.cc index a4074171..bd3a7600 100644 --- a/dcmdata/apps/dcmdump.cc +++ b/dcmdata/apps/dcmdump.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,7 +36,7 @@ #ifdef WITH_ZLIB #include /* for zlibVersion() */ #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION #include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #endif @@ -235,6 +235,15 @@ DCMTK_MAIN_FUNCTION cmd.addSubGroup("handling of wrong delimitation items:"); cmd.addOption("--use-delim-items", "-rd", "use delimitation items from dataset (default)"); cmd.addOption("--replace-wrong-delim", "+rd", "replace wrong sequence/item delimitation items"); + cmd.addSubGroup("handling of illegal undefined length OB/OW elements:"); + cmd.addOption("--illegal-obow-rej", "-oi", "reject dataset with illegal element (default)"); + cmd.addOption("--illegal-obow-conv", "+oi", "convert undefined length OB/OW element to SQ"); + cmd.addSubGroup("handling of VOI LUT Sequence with OW VR and explicit length:"); + cmd.addOption("--illegal-voi-rej", "-vi", "reject dataset with illegal VOI LUT (default)"); + cmd.addOption("--illegal-voi-conv", "+vi", "convert illegal VOI LUT to SQ"); + cmd.addSubGroup("handling of explicit length pixel data for encaps. transfer syntaxes:"); + cmd.addOption("--abort-expl-pixdata", "-pe", "abort on explicit length pixel data (default)"); + cmd.addOption("--use-expl-pixdata", "+pe", "use explicit length pixel data"); cmd.addSubGroup("general handling of parser errors: "); cmd.addOption("--ignore-parse-errors", "+Ep", "try to recover from parse errors"); cmd.addOption("--handle-parse-errors", "-Ep", "handle parse errors and stop parsing (default)"); @@ -250,7 +259,7 @@ DCMTK_MAIN_FUNCTION cmd.addOption("--bitstream-zlib", "+bz", "expect deflated zlib bitstream"); #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION cmd.addGroup("processing options:"); cmd.addSubGroup("specific character set:"); cmd.addOption("--convert-to-utf8", "+U8", "convert all element values that are affected\nby Specific Character Set (0008,0005) to UTF-8"); @@ -304,7 +313,7 @@ DCMTK_MAIN_FUNCTION { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used:"; -#if !defined(WITH_ZLIB) && !defined(WITH_LIBICONV) +#if !defined(WITH_ZLIB) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) COUT << " none" << OFendl; #else COUT << OFendl; @@ -312,7 +321,7 @@ DCMTK_MAIN_FUNCTION #ifdef WITH_ZLIB COUT << "- ZLIB, Version " << zlibVersion() << OFendl; #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; #endif return 0; @@ -465,6 +474,39 @@ DCMTK_MAIN_FUNCTION } cmd.endOptionBlock(); + cmd.beginOptionBlock(); + if (cmd.findOption("--illegal-obow-rej")) + { + dcmConvertUndefinedLengthOBOWtoSQ.set(OFFalse); + } + if (cmd.findOption("--illegal-obow-conv")) + { + dcmConvertUndefinedLengthOBOWtoSQ.set(OFTrue); + } + cmd.endOptionBlock(); + + cmd.beginOptionBlock(); + if (cmd.findOption("--illegal-voi-rej")) + { + dcmConvertVOILUTSequenceOWtoSQ.set(OFFalse); + } + if (cmd.findOption("--illegal-voi-conv")) + { + dcmConvertVOILUTSequenceOWtoSQ.set(OFTrue); + } + cmd.endOptionBlock(); + + cmd.beginOptionBlock(); + if (cmd.findOption("--abort-expl-pixdata")) + { + dcmUseExplLengthPixDataForEncTS.set(OFFalse); + } + if (cmd.findOption("--use-expl-pixdata")) + { + dcmUseExplLengthPixDataForEncTS.set(OFTrue); + } + cmd.endOptionBlock(); + cmd.beginOptionBlock(); if (cmd.findOption("--ignore-parse-errors")) { @@ -501,7 +543,7 @@ DCMTK_MAIN_FUNCTION #endif /* processing options */ -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (cmd.findOption("--convert-to-utf8")) convertToUTF8 = OFTrue; #endif @@ -747,7 +789,7 @@ static int dumpFile(STD_NAMESPACE ostream &out, if (loadIntoMemory) dfile.loadAllDataIntoMemory(); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (convertToUTF8) { OFLOG_INFO(dcmdumpLogger, "converting all element values that are affected by Specific Character Set (0008,0005) to UTF-8"); diff --git a/dcmdata/apps/dcmgpdir.cc b/dcmdata/apps/dcmgpdir.cc index f1d36cec..86aae1d9 100644 --- a/dcmdata/apps/dcmgpdir.cc +++ b/dcmdata/apps/dcmgpdir.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -509,7 +509,7 @@ DCMTK_MAIN_FUNCTION { if (!OFStandard::dirExists(opt_directory)) { - OFLOG_FATAL(dcmgpdirLogger, "specified input directory does not exist"); + OFLOG_FATAL(dcmgpdirLogger, OFFIS_CONSOLE_APPLICATION << ": specified input directory does not exist"); return 1; } } @@ -560,13 +560,21 @@ DCMTK_MAIN_FUNCTION #endif OFCondition result; + const char *action = ""; /* create new general purpose DICOMDIR, append to or update existing one */ if (opt_append) + { + action = "appending"; result = ddir.appendToDicomDir(opt_profile, opt_output); + } else if (opt_update) + { + action = "updating"; result = ddir.updateDicomDir(opt_profile, opt_output); - else + } else { + action = "creating"; result = ddir.createNewDicomDir(opt_profile, opt_output, opt_fileset); + } if (result.good()) { /* set fileset descriptor and character set */ @@ -619,10 +627,20 @@ DCMTK_MAIN_FUNCTION } /* write DICOMDIR file */ if (result.good() && opt_write) + { + action = "writing"; result = ddir.writeDicomDir(opt_enctype, opt_glenc); + } } } + /* some final error reporting */ + if (result.bad() && (result != EC_IllegalCall)) + { + OFLOG_FATAL(dcmgpdirLogger, OFFIS_CONSOLE_APPLICATION << ": error (" + << result.text() << ") " << action << " file: " << opt_output); + } + #ifdef BUILD_DCMGPDIR_AS_DCMMKDIR // deregister global decompression codecs DcmRLEDecoderRegistration::cleanup(); diff --git a/dcmdata/apps/dump2dcm.cc b/dcmdata/apps/dump2dcm.cc index 5a212cf3..a2181cf4 100644 --- a/dcmdata/apps/dump2dcm.cc +++ b/dcmdata/apps/dump2dcm.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -274,6 +274,12 @@ parseVR(char *&s, DcmEVR &vr) vr = EVR_UNKNOWN; s += 2; } + // dcmdump uses "??" in case of "Unknown Tag & Data" and implicit VR + else if ((*s == '?') && (*(s + 1) == '?')) + { + vr = EVR_UNKNOWN; + s += 2; + } else ok = OFFalse; return ok; @@ -526,7 +532,7 @@ insertIntoSet(DcmStack &stack, const E_TransferSyntax xfer, const DcmTagKey &tag else if (newTagVR == EVR_pixelItem) newElement = new DcmPixelItem(DCM_PixelItemTag); else - newElementError = newDicomElement(newElement, tag); + newElementError = DcmItem::newDicomElement(newElement, tag); if (newElementError == EC_Normal) { diff --git a/dcmdata/apps/xml2dcm.cc b/dcmdata/apps/xml2dcm.cc index 4b161597..6da18d9e 100644 --- a/dcmdata/apps/xml2dcm.cc +++ b/dcmdata/apps/xml2dcm.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2003-2016, OFFIS e.V. + * Copyright (C) 2003-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -198,7 +198,7 @@ static OFCondition createNewElement(xmlNodePtr current, if (dcmEVR != EVR_UNKNOWN) dcmTag.setVR(dcmVR); /* create DICOM element */ - result = newDicomElement(newElem, dcmTag); + result = DcmItem::newDicomElement(newElem, dcmTag); } else { OFLOG_WARN(xml2dcmLogger, "invalid 'tag' attribute (" << elemTag << "), ignoring node"); result = EC_InvalidTag; @@ -787,9 +787,15 @@ int main(int argc, char *argv[]) cmd.beginOptionBlock(); if (cmd.findOption("--dont-overwrite-uids")) + { + app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFFalse; + } if (cmd.findOption("--overwrite-uids")) + { + app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFTrue; + } cmd.endOptionBlock(); /* output options */ diff --git a/dcmdata/data/dicom.dic b/dcmdata/data/dicom.dic index e0f8c86c..cbe39e2d 100644 --- a/dcmdata/data/dicom.dic +++ b/dcmdata/data/dicom.dic @@ -1,5 +1,5 @@ # -# Copyright (C) 1994-2016, OFFIS e.V. +# Copyright (C) 1994-2017, OFFIS e.V. # All rights reserved. See COPYRIGHT file for details. # # This software and supporting documentation were developed by @@ -21,12 +21,13 @@ # DICONDE (Digital Imaging and Communication in Nondestructive Evaluation) and # DICOS (Digital Imaging and Communications in Security) standard. # -# Generated automatically from DICOM PS 3.6-2016c and PS 3.7-2016c -# File created on 2016-06-13 09:52:04 by J. Riesmeier on thinkpad. +# Generated automatically from DICOM PS 3.6-2016e and PS 3.7-2016e +# File created on 2016-11-23 13:16:19 by J. Riesmeier on thinkpad. +# File updated manually on 2017-01-31 by J. Riesmeier. # # In addition, the data dictionary entries from the following final text # supplements and correction items (CP) have been incorporated: -# - (none) +# - CP 1619 # # Each line represents an entry in the data dictionary. Each line has 5 fields # (Tag, VR, Name, VM, Version). Entries need not be in ascending tag order. @@ -168,6 +169,9 @@ (0008,0123) SQ ContextGroupIdentificationSequence 1 DICOM (0008,0124) SQ MappingResourceIdentificationSequence 1 DICOM (0008,0201) SH TimezoneOffsetFromUTC 1 DICOM +(0008,0220) SQ ResponsibleGroupCodeSequence 1 DICOM +(0008,0221) CS EquipmentModality 1 DICOM +(0008,0222) LO ManufacturerRelatedModelGroup 1 DICOM (0008,0300) SQ PrivateDataElementCharacteristicsSequence 1 DICOM (0008,0301) US PrivateGroupReference 1 DICOM (0008,0302) LO PrivateCreatorReference 1 DICOM @@ -176,6 +180,15 @@ (0008,0305) SQ DeidentificationActionSequence 1 DICOM (0008,0306) US IdentifyingPrivateElements 1-n DICOM (0008,0307) CS DeidentificationAction 1 DICOM +(0008,0308) US PrivateDataElement 1 DICOM +(0008,0309) UL PrivateDataElementValueMultiplicity 1-3 DICOM +(0008,030A) CS PrivateDataElementValueRepresentation 1 DICOM +(0008,030B) UL PrivateDataElementNumberOfItems 1-2 DICOM +(0008,030C) UC PrivateDataElementName 1 DICOM +(0008,030D) UC PrivateDataElementKeyword 1 DICOM +(0008,030E) UT PrivateDataElementDescription 1 DICOM +(0008,030F) UT PrivateDataElementEncoding 1 DICOM +(0008,0310) SQ PrivateDataElementDefinitionSequence 1 DICOM (0008,1010) SH StationName 1 DICOM (0008,1030) LO StudyDescription 1 DICOM (0008,1032) SQ ProcedureCodeSequence 1 DICOM @@ -298,6 +311,9 @@ (0010,1010) AS PatientAge 1 DICOM (0010,1020) DS PatientSize 1 DICOM (0010,1021) SQ PatientSizeCodeSequence 1 DICOM +(0010,1022) DS PatientBodyMassIndex 1 DICOM +(0010,1023) DS MeasuredAPDimension 1 DICOM +(0010,1024) DS MeasuredLateralDimension 1 DICOM (0010,1030) DS PatientWeight 1 DICOM (0010,1040) LO PatientAddress 1 DICOM (0010,1060) PN PatientMotherBirthName 1 DICOM @@ -352,6 +368,8 @@ (0012,0083) SQ ConsentForClinicalTrialUseSequence 1 DICOM (0012,0084) CS DistributionType 1 DICOM (0012,0085) CS ConsentForDistributionFlag 1 DICOM +(0012,0086) DA EthicsCommitteeApprovalEffectivenessStartDate 1 DICOM +(0012,0087) DA EthicsCommitteeApprovalEffectivenessEndDate 1 DICOM (0014,0025) ST ComponentManufacturingProcedure 1 DICOM/DICONDE (0014,0028) ST ComponentManufacturer 1 DICOM/DICONDE (0014,0030) DS MaterialThickness 1-n DICOM/DICONDE @@ -596,6 +614,8 @@ (0018,1006) LO GridID 1 DICOM (0018,1007) LO CassetteID 1 DICOM (0018,1008) LO GantryID 1 DICOM +(0018,1009) UT UniqueDeviceIdentifier 1 DICOM +(0018,100A) SQ UDISequence 1 DICOM (0018,1010) LO SecondaryCaptureDeviceID 1 DICOM (0018,1012) DA DateOfSecondaryCapture 1 DICOM (0018,1014) TM TimeOfSecondaryCapture 1 DICOM @@ -1066,7 +1086,7 @@ (0018,9320) SH ImageFilter 1 DICOM (0018,9321) SQ CTExposureSequence 1 DICOM (0018,9322) FD ReconstructionPixelSpacing 2 DICOM -(0018,9323) CS ExposureModulationType 1 DICOM +(0018,9323) CS ExposureModulationType 1-n DICOM (0018,9324) FD EstimatedDoseSaving 1 DICOM (0018,9325) SQ CTXRayDetailsSequence 1 DICOM (0018,9326) SQ CTPositionSequence 1 DICOM @@ -1252,6 +1272,65 @@ (0018,980E) SQ TransducerBeamSteeringCodeSequence 1 DICOM (0018,980F) SQ TransducerApplicationCodeSequence 1 DICOM (0018,9810) xs ZeroVelocityPixelValue 1 DICOM +(0018,9900) LO ReferenceLocationLabel 1 DICOM +(0018,9901) UT ReferenceLocationDescription 1 DICOM +(0018,9902) SQ ReferenceBasisCodeSequence 1 DICOM +(0018,9903) SQ ReferenceGeometryCodeSequence 1 DICOM +(0018,9904) DS OffsetDistance 1 DICOM +(0018,9905) CS OffsetDirection 1 DICOM +(0018,9906) SQ PotentialScheduledProtocolCodeSequence 1 DICOM +(0018,9907) SQ PotentialRequestedProcedureCodeSequence 1 DICOM +(0018,9908) UC PotentialReasonsForProcedure 1-n DICOM +(0018,9909) SQ PotentialReasonsForProcedureCodeSequence 1 DICOM +(0018,990A) UC PotentialDiagnosticTasks 1-n DICOM +(0018,990B) SQ ContraindicationsCodeSequence 1 DICOM +(0018,990C) SQ ReferencedDefinedProtocolSequence 1 DICOM +(0018,990D) SQ ReferencedPerformedProtocolSequence 1 DICOM +(0018,990E) SQ PredecessorProtocolSequence 1 DICOM +(0018,990F) UT ProtocolPlanningInformation 1 DICOM +(0018,9910) UT ProtocolDesignRationale 1 DICOM +(0018,9911) SQ PatientSpecificationSequence 1 DICOM +(0018,9912) SQ ModelSpecificationSequence 1 DICOM +(0018,9913) SQ ParametersSpecificationSequence 1 DICOM +(0018,9914) SQ InstructionSequence 1 DICOM +(0018,9915) US InstructionIndex 1 DICOM +(0018,9916) LO InstructionText 1 DICOM +(0018,9917) UT InstructionDescription 1 DICOM +(0018,9918) CS InstructionPerformedFlag 1 DICOM +(0018,9919) DT InstructionPerformedDateTime 1 DICOM +(0018,991A) UT InstructionPerformanceComment 1 DICOM +(0018,991B) SQ PatientPositioningInstructionSequence 1 DICOM +(0018,991C) SQ PositioningMethodCodeSequence 1 DICOM +(0018,991D) SQ PositioningLandmarkSequence 1 DICOM +(0018,991E) UI TargetFrameOfReferenceUID 1 DICOM +(0018,991F) SQ AcquisitionProtocolElementSpecificationSequence 1 DICOM +(0018,9920) SQ AcquisitionProtocolElementSequence 1 DICOM +(0018,9921) US ProtocolElementNumber 1 DICOM +(0018,9922) LO ProtocolElementName 1 DICOM +(0018,9923) UT ProtocolElementCharacteristicsSummary 1 DICOM +(0018,9924) UT ProtocolElementPurpose 1 DICOM +(0018,9930) CS AcquisitionMotion 1 DICOM +(0018,9931) SQ AcquisitionStartLocationSequence 1 DICOM +(0018,9932) SQ AcquisitionEndLocationSequence 1 DICOM +(0018,9933) SQ ReconstructionProtocolElementSpecificationSequence 1 DICOM +(0018,9934) SQ ReconstructionProtocolElementSequence 1 DICOM +(0018,9935) SQ StorageProtocolElementSpecificationSequence 1 DICOM +(0018,9936) SQ StorageProtocolElementSequence 1 DICOM +(0018,9937) LO RequestedSeriesDescription 1 DICOM +(0018,9938) US SourceAcquisitionProtocolElementNumber 1-n DICOM +(0018,9939) US SourceAcquisitionBeamNumber 1-n DICOM +(0018,993A) US SourceReconstructionProtocolElementNumber 1-n DICOM +(0018,993B) SQ ReconstructionStartLocationSequence 1 DICOM +(0018,993C) SQ ReconstructionEndLocationSequence 1 DICOM +(0018,993D) SQ ReconstructionAlgorithmSequence 1 DICOM +(0018,993E) SQ ReconstructionTargetCenterLocationSequence 1 DICOM +(0018,9941) UT ImageFilterDescription 1 DICOM +(0018,9942) FD CTDIvolNotificationTrigger 1 DICOM +(0018,9943) FD DLPNotificationTrigger 1 DICOM +(0018,9944) CS AutoKVPSelectionType 1 DICOM +(0018,9945) FD AutoKVPUpperBound 1 DICOM +(0018,9946) FD AutoKVPLowerBound 1 DICOM +(0018,9947) CS ProtocolDefinedPatientPosition 1 DICOM (0018,A001) SQ ContributingEquipmentSequence 1 DICOM (0018,A002) DT ContributionDateTime 1 DICOM (0018,A003) ST ContributionDescription 1 DICOM @@ -1274,6 +1353,7 @@ (0020,0200) UI SynchronizationFrameOfReferenceUID 1 DICOM (0020,0242) UI SOPInstanceUIDOfConcatenationSource 1 DICOM (0020,1002) IS ImagesInAcquisition 1 DICOM +(0020,103F) LO TargetPositionReferenceIndicator 1 DICOM (0020,1040) LO PositionReferenceIndicator 1 DICOM (0020,1041) DS SliceLocation 1 DICOM (0020,1200) IS NumberOfPatientRelatedStudies 1 DICOM @@ -1646,6 +1726,9 @@ (0028,1222) OW SegmentedGreenPaletteColorLookupTableData 1 DICOM (0028,1223) OW SegmentedBluePaletteColorLookupTableData 1 DICOM (0028,1224) OW SegmentedAlphaPaletteColorLookupTableData 1 DICOM +(0028,1230) SQ StoredValueColorRangeSequence 1 DICOM +(0028,1231) FD MinimumStoredValueMapped 1 DICOM +(0028,1232) FD MaximumStoredValueMapped 1 DICOM (0028,1300) CS BreastImplantPresent 1 DICOM (0028,1350) CS PartialView 1 DICOM (0028,1351) ST PartialViewDescription 1 DICOM @@ -2321,6 +2404,7 @@ (0062,0004) US SegmentNumber 1 DICOM (0062,0005) LO SegmentLabel 1 DICOM (0062,0006) ST SegmentDescription 1 DICOM +(0062,0007) SQ SegmentationAlgorithmIdentificationSequence 1 DICOM (0062,0008) CS SegmentAlgorithmType 1 DICOM (0062,0009) LO SegmentAlgorithmName 1 DICOM (0062,000A) SQ SegmentIdentificationSequence 1 DICOM @@ -2573,6 +2657,7 @@ (0070,031A) UI FiducialUID 1 DICOM (0070,031C) SQ FiducialSetSequence 1 DICOM (0070,031E) SQ FiducialSequence 1 DICOM +(0070,031F) SQ FiducialsPropertyCategoryCodeSequence 1 DICOM (0070,0401) US GraphicLayerRecommendedDisplayCIELabValue 3 DICOM (0070,0402) SQ BlendingSequence 1 DICOM (0070,0403) FL RelativeOpacity 1 DICOM @@ -2890,6 +2975,7 @@ (0082,0035) SQ RecommendedDefaultValueSequence 1 DICOM (0082,0036) CS ConstraintViolationSignificance 1 DICOM (0082,0037) UT ConstraintViolationCondition 1 DICOM +(0082,0038) CS ModifiableConstraintFlag 1 DICOM (0088,0130) SH StorageMediaFileSetID 1 DICOM (0088,0140) UI StorageMediaFileSetUID 1 DICOM (0088,0200) SQ IconImageSequence 1 DICOM @@ -3096,7 +3182,6 @@ (3006,00B6) SQ ROIElementalCompositionSequence 1 DICOM (3006,00B7) US ROIElementalCompositionAtomicNumber 1 DICOM (3006,00B8) FL ROIElementalCompositionAtomicMassFraction 1 DICOM -(3006,00B9) SQ AdditionalRTROIIdentificationCodeSequence 1 DICOM (3006,00C6) DS FrameOfReferenceTransformationMatrix 16 DICOM (3006,00C8) LO FrameOfReferenceTransformationComment 1 DICOM (3008,0010) SQ MeasuredDoseReferenceSequence 1 DICOM @@ -3138,6 +3223,7 @@ (3008,0064) IS MeasuredDoseReferenceNumber 1 DICOM (3008,0065) AT ParameterPointer 1 DICOM (3008,0066) ST OverrideReason 1 DICOM +(3008,0067) US ParameterValueNumber 1 DICOM (3008,0068) SQ CorrectedParameterSequence 1 DICOM (3008,006A) FL CorrectionValue 1 DICOM (3008,0070) SQ CalculatedDoseReferenceSequence 1 DICOM @@ -3530,6 +3616,7 @@ (300A,0386) FL RangeModulatorGatingStartWaterEquivalentThickness 1 DICOM (300A,0388) FL RangeModulatorGatingStopWaterEquivalentThickness 1 DICOM (300A,038A) FL IsocenterToRangeModulatorDistance 1 DICOM +(300A,038F) FL ScanSpotTimeOffset 1-n DICOM (300A,0390) SH ScanSpotTuneID 1 DICOM (300A,0391) IS ScanSpotPrescribedIndices 1-n DICOM (300A,0392) IS NumberOfScanSpotPositions 1 DICOM @@ -4111,6 +4198,7 @@ (2130,0080) SQ RETIRED_PresentationLUTContentSequence 1 DICOM/retired (2130,00A0) SQ RETIRED_ProposedStudySequence 1 DICOM/retired (2130,00C0) SQ RETIRED_OriginalImageSequence 1 DICOM/retired +(3006,00B9) SQ RETIRED_AdditionalRTROIIdentificationCodeSequence 1 DICOM/retired (3006,00C0) SQ RETIRED_FrameOfReferenceRelationshipSequence 1 DICOM/retired (3006,00C2) UI RETIRED_RelatedFrameOfReferenceUID 1 DICOM/retired (3006,00C4) CS RETIRED_FrameOfReferenceTransformationType 1 DICOM/retired @@ -4208,6 +4296,15 @@ # #--------------------------------------------------------------------------- # +# Correction Item 1619 +# +(0010,0221) SQ GeneticModificationsSequence 1 DICOM/CP_1619 +(0010,0222) UC GeneticModificationsDescription 1 DICOM/CP_1619 +(0010,0223) LO GeneticModificationsNomenclature 1 DICOM/CP_1619 +(0010,0229) SQ GeneticModificationsCodeSequence 1 DICOM/CP_1619 +# +#--------------------------------------------------------------------------- +# # Private Creator Data Elements # (0009-o-FFFF,0000) UL PrivateGroupLength 1 PRIVATE diff --git a/dcmdata/docs/dcm2json.man b/dcmdata/docs/dcm2json.man new file mode 100644 index 00000000..44794451 --- /dev/null +++ b/dcmdata/docs/dcm2json.man @@ -0,0 +1,363 @@ +/*! + +\if MANPAGES +\page dcm2json Convert DICOM file and data set to JSON +\else +\page dcm2json dcm2json: Convert DICOM file and data set to JSON +\endif + +\section synopsis SYNOPSIS + +\verbatim +dcm2json [options] dcmfile-in [jsonfile-out] +\endverbatim + +\section description DESCRIPTION + +The \b dcm2json utility converts the contents of a DICOM file (file format or +raw data set) to JSON (JavaScript Object Notation). The output refers to the +"DICOM JSON Model", which is found in DICOM Part 18 Section F. + +If \b dcm2json reads a raw data set (DICOM data without a file format +meta-header) it will attempt to guess the transfer syntax by examining the +first few bytes of the file. It is not always possible to correctly guess the +transfer syntax and it is better to convert a data set to a file format +whenever possible (using the \b dcmconv utility). It is also possible to use +the \e -f and -t[ieb] options to force \b dcm2json to read a data set +with a particular transfer syntax. + +\section parameters PARAMETERS + +\verbatim +dcmfile-in DICOM input filename to be converted + +jsonfile-out JSON output filename (default: stdout) +\endverbatim + +\section options OPTIONS + +\subsection general_options general options +\verbatim + + -h --help + print this help text and exit + + --version + print version information and exit + + --arguments + print expanded command line arguments + + -q --quiet + quiet mode, print no warnings and errors + + -v --verbose + verbose mode, print processing details + + -d --debug + debug mode, print debug information + + -ll --log-level [l]evel: string constant + (fatal, error, warn, info, debug, trace) + use level l for the logger + + -lc --log-config [f]ilename: string + use config file f for the logger +\endverbatim + +\subsection input_options input options +\verbatim +input file format: + + +f --read-file + read file format or data set (default) + + +fo --read-file-only + read file format only + + -f --read-dataset + read data set without file meta information + +input transfer syntax: + + -t= --read-xfer-auto + use TS recognition (default) + + -td --read-xfer-detect + ignore TS specified in the file meta header + + -te --read-xfer-little + read with explicit VR little endian TS + + -tb --read-xfer-big + read with explicit VR big endian TS + + -ti --read-xfer-implicit + read with implicit VR little endian TS +\endverbatim + +\subsection output_options output options +\verbatim +output format: + + +fc --formatted-code + output file with human readable formatting (default) + + -fc --compact-code + output without formatting (single line of code) + + +m --write-meta + write data set with meta information +\endverbatim + +\section json_format JSON Format + +The basic structure of the JSON output created from a DICOM file looks like +the following (see DICOM Part 18 Section F for details): + +\verbatim +{ + "00080005": { + "vr": "CS", + "Value": [ + "ISO_IR192" + ] + }, + "00080020": { + "vr": "DT", + "Value": [ + "20130409" + ] + }, + "00080030": { + "vr": "TM", + "Value": [ + "131600.0000" + ] + }, + "00080050": { + "vr": "SH", + "Value": [ + "11235813" + ] + }, + "00080056": { + "vr": "CS", + "Value": [ + "ONLINE" + ] + }, + "00080061": { + "vr": "CS", + "Value": [ + "CT", + "PET" + ] + }, + "00080090": { + "vr": "PN", + "Value": [ + { + "Alphabetic": "^Bob^^Dr." + } + ] + }, + "00081190": { + "vr": "UR", + "Value": [ + "http://wado.nema.org/studies/ + 1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" + ] + }, + "00090010": { + "vr": "LO", + "Value": [ + "Vendor A" + ] + }, + "00091002": { + "vr": "UN", + "InlineBinary": "z0x9c8v7" + }, + "00100010": { + "vr": "PN", + "Value": [ + { + "Alphabetic": "Wang^XiaoDong" + } + ] + }, + "00100020": { + "vr": "LO", + "Value": [ + "12345" + ] + }, + "00100021": { + "vr": "LO", + "Value": [ + "Hospital A" + ] + }, + "00100030": { + "vr": "DT", + "Value": [ + "19670701" + ] + }, + "00100040": { + "vr": "CS", + "Value": [ + "M" + ] + }, + "00101002": { + "vr": "SQ", + "Value": [ + { + "00100020": { + "vr": "LO", + "Value": [ + "54321" + ] + }, + "00100021": { + "vr": "LO", + "Value": [ + "Hospital B" + ] + } + }, + { + "00100020": { + "vr": "LO", + "Value": [ + "24680" + ] + }, + "00100021": { + "vr": "LO", + "Value": [ + "Hospital C" + ] + } + } + ] + }, + "0020000D": { + "vr": "UI", + "Value": [ + "1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" + ] + }, + "00200010": { + "vr": "SH", + "Value": [ + "11235813" + ] + }, + "00201206": { + "vr": "IS", + "Value": [ + 4 + ] + }, + "00201208": { + "vr": "IS", + "Value": [ + 942 + ] + } +} +\endverbatim + +\subsection bulk_data Bulk Data + +Binary data, i.e. DICOM element values with Value Representations (VR) of OB +or OW, as well as OD, OF and UN values are by default not written to the JSON +output because of their size. Instead, for each element, a new Universally +Unique Identifier (UUID) is being generated and written as an value of a +BulkDataURI JSON element. So far, there is no possibility to write an +additional file to hold the binary data for each of the binary data chunks. + +\section notes NOTES + +\subsection character_encoding Character Encoding + +The JSON encoding is determined automatically from the DICOM attribute +(0008,0005) "Specific Character Set" using the following mapping: + +\verbatim +ISO Latin 1 "ISO_IR 100" => "UTF-8" +ISO Latin 2 "ISO_IR 101" => "UTF-8" +ISO Latin 3 "ISO_IR 109" => "UTF-8" +ISO Latin 4 "ISO_IR 110" => "UTF-8" +ISO Latin 5 "ISO_IR 148" => "UTF-8" +Cyrillic "ISO_IR 144" => "UTF-8" +Arabic "ISO_IR 127" => "UTF-8" +Greek "ISO_IR 126" => "UTF-8" +Hebrew "ISO_IR 138" => "UTF-8" +\endverbatim + +\section logging LOGGING + +The level of logging output of the various command line tools and underlying +libraries can be specified by the user. By default, only errors and warnings +are written to the standard error stream. Using option \e --verbose also +informational messages like processing details are reported. Option +\e --debug can be used to get more details on the internal activity, e.g. for +debugging purposes. Other logging levels can be selected using option +\e --log-level. In \e --quiet mode only fatal errors are reported. In such +very severe error events, the application will usually terminate. For more +details on the different logging levels, see documentation of module "oflog". + +In case the logging output should be written to file (optionally with logfile +rotation), to syslog (Unix) or the event log (Windows) option \e --log-config +can be used. This configuration file also allows for directing only certain +messages to a particular output stream and for filtering certain messages +based on the module or application where they are generated. An example +configuration file is provided in \/logger.cfg. + +\section command_line COMMAND LINE + +All command line tools use the following notation for parameters: square +brackets enclose optional values (0-1), three trailing dots indicate that +multiple values are allowed (1-n), a combination of both means 0 to n values. + +Command line options are distinguished from parameters by a leading '+' or '-' +sign, respectively. Usually, order and position of command line options are +arbitrary (i.e. they can appear anywhere). However, if options are mutually +exclusive the rightmost appearance is used. This behavior conforms to the +standard evaluation rules of common Unix shells. + +In addition, one or more command files can be specified using an '@' sign as a +prefix to the filename (e.g. \@command.txt). Such a command argument +is replaced by the content of the corresponding text file (multiple +whitespaces are treated as a single separator unless they appear between two +quotation marks) prior to any further evaluation. Please note that a command +file cannot contain another command file. This simple but effective approach +allows one to summarize common combinations of options/parameters and avoids +longish and confusing command lines (an example is provided in file +\/dumppat.txt). + +\section environment ENVIRONMENT + +The \b dcm2json utility will attempt to load DICOM data dictionaries specified +in the \e DCMDICTPATH environment variable. By default, i.e. if the +\e DCMDICTPATH environment variable is not set, the file +\/dicom.dic will be loaded unless the dictionary is built +into the application (default for Windows). + +The default behavior should be preferred and the \e DCMDICTPATH environment +variable only used when alternative data dictionaries are required. The +\e DCMDICTPATH environment variable has the same format as the Unix shell +\e PATH variable in that a colon (":") separates entries. On Windows systems, +a semicolon (";") is used as a separator. The data dictionary code will +attempt to load each file specified in the \e DCMDICTPATH environment variable. +It is an error if no data dictionary can be loaded. + +\section copyright COPYRIGHT + +Copyright (C) 2016-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. + +*/ diff --git a/dcmdata/docs/dcm2xml.man b/dcmdata/docs/dcm2xml.man index 985c1a75..b5b11290 100644 --- a/dcmdata/docs/dcm2xml.man +++ b/dcmdata/docs/dcm2xml.man @@ -130,7 +130,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) \endverbatim \subsection output_options output options @@ -385,6 +386,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 2002-2015 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2002-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmdata/docs/dcmconv.man b/dcmdata/docs/dcmconv.man index f57557f4..f142f030 100644 --- a/dcmdata/docs/dcmconv.man +++ b/dcmdata/docs/dcmconv.man @@ -149,6 +149,30 @@ handling of wrong delimitation items: +rd --replace-wrong-delim replace wrong sequence/item delimitation items +handling of illegal undefined length OB/OW elements: + + -oi --illegal-obow-rej + reject dataset with illegal element (default) + + +oi --illegal-obow-conv + convert undefined length OB/OW element to SQ + +handling of VOI LUT Sequence with OW VR and explicit length: + + -vi --illegal-voi-rej + reject dataset with illegal VOI LUT (default) + + +vi --illegal-voi-conv + convert illegal VOI LUT to SQ + +handling of explicit length pixel data for encaps. transfer syntaxes: + + -pe --abort-expl-pixdata + abort on explicit length pixel data (default) + + +pe --use-expl-pixdata + use explicit length pixel data + general handling of parser errors: +Ep --ignore-parse-errors @@ -183,7 +207,8 @@ bitstream format of deflated input: \verbatim specific character set: - # the following options require support from the libiconv toolkit + # the following options require support from an underlying character + # encoding library (see output of --version on which one is available) +U8 --convert-to-utf8 convert all element values that are affected @@ -358,6 +383,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 1994-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1994-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmdata/docs/dcmdata.dox b/dcmdata/docs/dcmdata.dox index dbf84a05..54fd9ad6 100644 --- a/dcmdata/docs/dcmdata.dox +++ b/dcmdata/docs/dcmdata.dox @@ -32,6 +32,7 @@ This module contains the following command line tools: \li \ref img2dcm \li \ref pdf2dcm \li \ref xml2dcm +\li \ref dcm2json \section Files diff --git a/dcmdata/docs/dcmdump.man b/dcmdata/docs/dcmdump.man index cead41c4..54175e9e 100644 --- a/dcmdata/docs/dcmdump.man +++ b/dcmdata/docs/dcmdump.man @@ -187,6 +187,30 @@ handling of wrong delimitation items: +rd --replace-wrong-delim replace wrong sequence/item delimitation items +handling of illegal undefined length OB/OW elements: + + -oi --illegal-obow-rej + reject dataset with illegal element (default) + + +oi --illegal-obow-conv + convert undefined length OB/OW element to SQ + +handling of VOI LUT Sequence with OW VR and explicit length: + + -vi --illegal-voi-rej + reject dataset with illegal VOI LUT (default) + + +vi --illegal-voi-conv + convert illegal VOI LUT to SQ + +handling of explicit length pixel data for encaps. transfer syntaxes: + + -pe --abort-expl-pixdata + abort on explicit length pixel data (default) + + +pe --use-expl-pixdata + use explicit length pixel data + general handling of parser errors: +Ep --ignore-parse-errors @@ -225,7 +249,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) \endverbatim \subsection output_options output options @@ -392,6 +417,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 1994-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1994-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmdata/include/dcmtk/dcmdata/dcbytstr.h b/dcmdata/include/dcmtk/dcmdata/dcbytstr.h index 3b739e27..ecb8686e 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcbytstr.h +++ b/dcmdata/include/dcmtk/dcmdata/dcbytstr.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -29,6 +29,8 @@ #include "dcmtk/dcmdata/dcelem.h" #include "dcmtk/ofstd/ofstring.h" +// forward declarations +class DcmJsonFormat; // include this file in doxygen documentation @@ -54,13 +56,16 @@ class DCMTK_DCMDATA_EXPORT DcmByteString: public DcmElement public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element * @param len value length for the new element */ - DcmByteString(const DcmTag &tag, - const Uint32 len = 0); + DcmByteString(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -169,6 +174,7 @@ class DCMTK_DCMDATA_EXPORT DcmByteString: public DcmElement * @param oxfer transfer syntax used to write the data * @param enctype flag, specifying the encoding with undefined or explicit length * @param wcache pointer to write cache object, may be NULL + * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition write(DcmOutputStream &outStream, const E_TransferSyntax oxfer, @@ -180,6 +186,7 @@ class DCMTK_DCMDATA_EXPORT DcmByteString: public DcmElement * @param oxfer transfer syntax used to write the data * @param enctype flag, specifying the encoding with undefined or explicit length * @param wcache pointer to write cache object, may be NULL + * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition writeSignatureFormat(DcmOutputStream &outStream, const E_TransferSyntax oxfer, @@ -276,8 +283,29 @@ class DCMTK_DCMDATA_EXPORT DcmByteString: public DcmElement */ virtual OFBool isEmpty(const OFBool normalize = OFTrue); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + protected: + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmByteString(const DcmTag &tag, + const Uint32 len); + /// internal type used to specify the current string representation enum E_StringMode { diff --git a/dcmdata/include/dcmtk/dcmdata/dcchrstr.h b/dcmdata/include/dcmtk/dcmdata/dcchrstr.h index 50611b98..741ab78e 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcchrstr.h +++ b/dcmdata/include/dcmtk/dcmdata/dcchrstr.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -40,6 +40,8 @@ #include "dcmtk/dcmdata/dcbytstr.h" +// forward declarations +class DcmJsonFormat; /** base class for DICOM elements with value representation LO, LT, PN, SH, ST, UC and UT */ @@ -128,13 +130,15 @@ class DCMTK_DCMDATA_EXPORT DcmCharString */ virtual OFCondition convertCharacterSet(DcmSpecificCharacterSet &converter); - protected: - - /** delimiter characters specifying when to switch back to the default character set - * (in case code extension techniques like ISO 2022 are used) - * @param characters delimiter characters to be used for character set conversion + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise */ - void setDelimiterChars(const OFString &characters) { delimiterChars = characters; } + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + + protected: /** get value of the SpecificCharacterSet element of the surrounding dataset/item * @param charset reference to variable that will store the result value. The @@ -146,11 +150,13 @@ class DCMTK_DCMDATA_EXPORT DcmCharString */ OFCondition getSpecificCharacterSet(OFString &charset); - private: + /** get delimiter characters specifying when to switch back to the default character + * set (in case code extension techniques like ISO 2022 are used). + * @return the delimiter characters for this VR, if any, a reference to an empty + * OFString if no delimiter characters are defined for this VR. + */ + virtual const OFString& getDelimiterChars() const; - /// delimiter characters specifying when to switch back to the default character set - /// (in case code extension techniques like ISO 2022 are used) - OFString delimiterChars; }; diff --git a/dcmdata/include/dcmtk/dcmdata/dccodec.h b/dcmdata/include/dcmtk/dcmdata/dccodec.h index 5fad12c3..9c65121b 100644 --- a/dcmdata/include/dcmtk/dcmdata/dccodec.h +++ b/dcmdata/include/dcmtk/dcmdata/dccodec.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2011, OFFIS e.V. + * Copyright (C) 1997-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -52,7 +52,7 @@ public: virtual ~DcmCodecParameter() {} /** this methods creates a copy of type DcmCodecParameter * - * it must be overweritten in every subclass. + * it must be overwritten in every subclass. * @return copy of this object */ virtual DcmCodecParameter *clone() const = 0; diff --git a/dcmdata/include/dcmtk/dcmdata/dcdatset.h b/dcmdata/include/dcmtk/dcmdata/dcdatset.h index 9df3abc4..78a8bebe 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcdatset.h +++ b/dcmdata/include/dcmtk/dcmdata/dcdatset.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -29,6 +29,7 @@ // forward declarations +class DcmJsonFormat; class DcmInputStream; class DcmOutputStream; class DcmRepresentationParameter; @@ -57,6 +58,7 @@ class DCMTK_DCMDATA_EXPORT DcmDataset /** assignment operator * @param obj the dataset to be copied + * @return reference to this object */ DcmDataset& operator=(const DcmDataset& obj); @@ -255,6 +257,28 @@ class DCMTK_DCMDATA_EXPORT DcmDataset virtual OFCondition writeXML(STD_NAMESPACE ostream &out, const size_t flags = 0); + /** write object in JSON format. + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + + /** write object in JSON format. + * @tparam Format the formatter class, e.g. DcmJsonFormatPretty. + * Will be deduced automatically. + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + template + OFCondition writeJson(STD_NAMESPACE ostream &out, + Format format) + { + return writeJson(out, OFstatic_cast(DcmJsonFormat&, format)); + } + /** load object from a DICOM file. * This method only supports DICOM objects stored as a dataset, i.e. without meta header. * Use DcmFileFormat::loadFile() to load files with meta header. @@ -333,6 +357,17 @@ class DCMTK_DCMDATA_EXPORT DcmDataset */ virtual OFBool checkForSpecificCharacterSet() const { return OFTrue; } + protected: + + /** perform checks after reading of the dataset is considered complete. The + * idea is that some checks cannot be performed when reading a specific + * element, for different reasons, e.g. the values of other elements have + * to be taken into account. + * @return status, EC_Normal if no problems are found, an error code otherwise + */ + OFCondition doPostReadChecks(); + + private: /// original transfer syntax of the dataset diff --git a/dcmdata/include/dcmtk/dcmdata/dcddirif.h b/dcmdata/include/dcmtk/dcmdata/dcddirif.h index 4f0e273b..61b6ba41 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcddirif.h +++ b/dcmdata/include/dcmtk/dcmdata/dcddirif.h @@ -1182,6 +1182,7 @@ class DCMTK_DCMDATA_EXPORT DicomDirInterface * @param dataset DICOM dataset containing data of the new record * @param referencedFileID value of the Referenced File ID attribute * @param sourceFilename name of the source DICOM file + * @return OFTrue if the data is consistent, OFFalse otherwise */ OFBool checkReferencedSOPInstance(DcmDirectoryRecord *record, DcmItem *dataset, diff --git a/dcmdata/include/dcmtk/dcmdata/dcdeftag.h b/dcmdata/include/dcmtk/dcmdata/dcdeftag.h index 87606fc4..53c22fda 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcdeftag.h +++ b/dcmdata/include/dcmtk/dcmdata/dcdeftag.h @@ -4,7 +4,7 @@ ** ** User: joergr ** Host: thinkpad -** Date: 2016-06-13 09:57:12 +** Date: 2017-01-31 14:11:01 ** Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdeftag ** ** From: ../data/dicom.dic @@ -17,12 +17,12 @@ #include "dcmtk/dcmdata/dctagkey.h" -#define DCM_DICT_DEFTAG_BUILD_DATE "2016-06-13 09:57:12" +#define DCM_DICT_DEFTAG_BUILD_DATE "2017-01-31 14:11:01" /* ** Fixed Tags in ascending (gggg,eeee) order. -** Number of entries: 4085 +** Number of entries: 4176 ** Tags with a repeating component (repeating tags) are listed later. */ #define DCM_CommandGroupLength DcmTagKey(0x0000, 0x0000) @@ -181,6 +181,9 @@ #define DCM_ContextGroupIdentificationSequence DcmTagKey(0x0008, 0x0123) #define DCM_MappingResourceIdentificationSequence DcmTagKey(0x0008, 0x0124) #define DCM_TimezoneOffsetFromUTC DcmTagKey(0x0008, 0x0201) +#define DCM_ResponsibleGroupCodeSequence DcmTagKey(0x0008, 0x0220) +#define DCM_EquipmentModality DcmTagKey(0x0008, 0x0221) +#define DCM_ManufacturerRelatedModelGroup DcmTagKey(0x0008, 0x0222) #define DCM_PrivateDataElementCharacteristicsSequence DcmTagKey(0x0008, 0x0300) #define DCM_PrivateGroupReference DcmTagKey(0x0008, 0x0301) #define DCM_PrivateCreatorReference DcmTagKey(0x0008, 0x0302) @@ -189,6 +192,15 @@ #define DCM_DeidentificationActionSequence DcmTagKey(0x0008, 0x0305) #define DCM_IdentifyingPrivateElements DcmTagKey(0x0008, 0x0306) #define DCM_DeidentificationAction DcmTagKey(0x0008, 0x0307) +#define DCM_PrivateDataElement DcmTagKey(0x0008, 0x0308) +#define DCM_PrivateDataElementValueMultiplicity DcmTagKey(0x0008, 0x0309) +#define DCM_PrivateDataElementValueRepresentation DcmTagKey(0x0008, 0x030a) +#define DCM_PrivateDataElementNumberOfItems DcmTagKey(0x0008, 0x030b) +#define DCM_PrivateDataElementName DcmTagKey(0x0008, 0x030c) +#define DCM_PrivateDataElementKeyword DcmTagKey(0x0008, 0x030d) +#define DCM_PrivateDataElementDescription DcmTagKey(0x0008, 0x030e) +#define DCM_PrivateDataElementEncoding DcmTagKey(0x0008, 0x030f) +#define DCM_PrivateDataElementDefinitionSequence DcmTagKey(0x0008, 0x0310) #define DCM_RETIRED_NetworkID DcmTagKey(0x0008, 0x1000) #define DCM_StationName DcmTagKey(0x0008, 0x1010) #define DCM_StudyDescription DcmTagKey(0x0008, 0x1030) @@ -326,6 +338,10 @@ #define DCM_StrainSource DcmTagKey(0x0010, 0x0217) #define DCM_StrainAdditionalInformation DcmTagKey(0x0010, 0x0218) #define DCM_StrainCodeSequence DcmTagKey(0x0010, 0x0219) +#define DCM_GeneticModificationsSequence DcmTagKey(0x0010, 0x0221) +#define DCM_GeneticModificationsDescription DcmTagKey(0x0010, 0x0222) +#define DCM_GeneticModificationsNomenclature DcmTagKey(0x0010, 0x0223) +#define DCM_GeneticModificationsCodeSequence DcmTagKey(0x0010, 0x0229) #define DCM_OtherPatientIDs DcmTagKey(0x0010, 0x1000) #define DCM_OtherPatientNames DcmTagKey(0x0010, 0x1001) #define DCM_OtherPatientIDsSequence DcmTagKey(0x0010, 0x1002) @@ -333,6 +349,9 @@ #define DCM_PatientAge DcmTagKey(0x0010, 0x1010) #define DCM_PatientSize DcmTagKey(0x0010, 0x1020) #define DCM_PatientSizeCodeSequence DcmTagKey(0x0010, 0x1021) +#define DCM_PatientBodyMassIndex DcmTagKey(0x0010, 0x1022) +#define DCM_MeasuredAPDimension DcmTagKey(0x0010, 0x1023) +#define DCM_MeasuredLateralDimension DcmTagKey(0x0010, 0x1024) #define DCM_PatientWeight DcmTagKey(0x0010, 0x1030) #define DCM_PatientAddress DcmTagKey(0x0010, 0x1040) #define DCM_RETIRED_InsurancePlanIdentification DcmTagKey(0x0010, 0x1050) @@ -388,6 +407,8 @@ #define DCM_ConsentForClinicalTrialUseSequence DcmTagKey(0x0012, 0x0083) #define DCM_DistributionType DcmTagKey(0x0012, 0x0084) #define DCM_ConsentForDistributionFlag DcmTagKey(0x0012, 0x0085) +#define DCM_EthicsCommitteeApprovalEffectivenessStartDate DcmTagKey(0x0012, 0x0086) +#define DCM_EthicsCommitteeApprovalEffectivenessEndDate DcmTagKey(0x0012, 0x0087) #define DCM_RETIRED_CADFileFormat DcmTagKey(0x0014, 0x0023) #define DCM_RETIRED_ComponentReferenceSystem DcmTagKey(0x0014, 0x0024) #define DCM_ComponentManufacturingProcedure DcmTagKey(0x0014, 0x0025) @@ -640,6 +661,8 @@ #define DCM_GridID DcmTagKey(0x0018, 0x1006) #define DCM_CassetteID DcmTagKey(0x0018, 0x1007) #define DCM_GantryID DcmTagKey(0x0018, 0x1008) +#define DCM_UniqueDeviceIdentifier DcmTagKey(0x0018, 0x1009) +#define DCM_UDISequence DcmTagKey(0x0018, 0x100a) #define DCM_SecondaryCaptureDeviceID DcmTagKey(0x0018, 0x1010) #define DCM_RETIRED_HardcopyCreationDeviceID DcmTagKey(0x0018, 0x1011) #define DCM_DateOfSecondaryCapture DcmTagKey(0x0018, 0x1012) @@ -1319,6 +1342,65 @@ #define DCM_TransducerBeamSteeringCodeSequence DcmTagKey(0x0018, 0x980e) #define DCM_TransducerApplicationCodeSequence DcmTagKey(0x0018, 0x980f) #define DCM_ZeroVelocityPixelValue DcmTagKey(0x0018, 0x9810) +#define DCM_ReferenceLocationLabel DcmTagKey(0x0018, 0x9900) +#define DCM_ReferenceLocationDescription DcmTagKey(0x0018, 0x9901) +#define DCM_ReferenceBasisCodeSequence DcmTagKey(0x0018, 0x9902) +#define DCM_ReferenceGeometryCodeSequence DcmTagKey(0x0018, 0x9903) +#define DCM_OffsetDistance DcmTagKey(0x0018, 0x9904) +#define DCM_OffsetDirection DcmTagKey(0x0018, 0x9905) +#define DCM_PotentialScheduledProtocolCodeSequence DcmTagKey(0x0018, 0x9906) +#define DCM_PotentialRequestedProcedureCodeSequence DcmTagKey(0x0018, 0x9907) +#define DCM_PotentialReasonsForProcedure DcmTagKey(0x0018, 0x9908) +#define DCM_PotentialReasonsForProcedureCodeSequence DcmTagKey(0x0018, 0x9909) +#define DCM_PotentialDiagnosticTasks DcmTagKey(0x0018, 0x990a) +#define DCM_ContraindicationsCodeSequence DcmTagKey(0x0018, 0x990b) +#define DCM_ReferencedDefinedProtocolSequence DcmTagKey(0x0018, 0x990c) +#define DCM_ReferencedPerformedProtocolSequence DcmTagKey(0x0018, 0x990d) +#define DCM_PredecessorProtocolSequence DcmTagKey(0x0018, 0x990e) +#define DCM_ProtocolPlanningInformation DcmTagKey(0x0018, 0x990f) +#define DCM_ProtocolDesignRationale DcmTagKey(0x0018, 0x9910) +#define DCM_PatientSpecificationSequence DcmTagKey(0x0018, 0x9911) +#define DCM_ModelSpecificationSequence DcmTagKey(0x0018, 0x9912) +#define DCM_ParametersSpecificationSequence DcmTagKey(0x0018, 0x9913) +#define DCM_InstructionSequence DcmTagKey(0x0018, 0x9914) +#define DCM_InstructionIndex DcmTagKey(0x0018, 0x9915) +#define DCM_InstructionText DcmTagKey(0x0018, 0x9916) +#define DCM_InstructionDescription DcmTagKey(0x0018, 0x9917) +#define DCM_InstructionPerformedFlag DcmTagKey(0x0018, 0x9918) +#define DCM_InstructionPerformedDateTime DcmTagKey(0x0018, 0x9919) +#define DCM_InstructionPerformanceComment DcmTagKey(0x0018, 0x991a) +#define DCM_PatientPositioningInstructionSequence DcmTagKey(0x0018, 0x991b) +#define DCM_PositioningMethodCodeSequence DcmTagKey(0x0018, 0x991c) +#define DCM_PositioningLandmarkSequence DcmTagKey(0x0018, 0x991d) +#define DCM_TargetFrameOfReferenceUID DcmTagKey(0x0018, 0x991e) +#define DCM_AcquisitionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x991f) +#define DCM_AcquisitionProtocolElementSequence DcmTagKey(0x0018, 0x9920) +#define DCM_ProtocolElementNumber DcmTagKey(0x0018, 0x9921) +#define DCM_ProtocolElementName DcmTagKey(0x0018, 0x9922) +#define DCM_ProtocolElementCharacteristicsSummary DcmTagKey(0x0018, 0x9923) +#define DCM_ProtocolElementPurpose DcmTagKey(0x0018, 0x9924) +#define DCM_AcquisitionMotion DcmTagKey(0x0018, 0x9930) +#define DCM_AcquisitionStartLocationSequence DcmTagKey(0x0018, 0x9931) +#define DCM_AcquisitionEndLocationSequence DcmTagKey(0x0018, 0x9932) +#define DCM_ReconstructionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9933) +#define DCM_ReconstructionProtocolElementSequence DcmTagKey(0x0018, 0x9934) +#define DCM_StorageProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9935) +#define DCM_StorageProtocolElementSequence DcmTagKey(0x0018, 0x9936) +#define DCM_RequestedSeriesDescription DcmTagKey(0x0018, 0x9937) +#define DCM_SourceAcquisitionProtocolElementNumber DcmTagKey(0x0018, 0x9938) +#define DCM_SourceAcquisitionBeamNumber DcmTagKey(0x0018, 0x9939) +#define DCM_SourceReconstructionProtocolElementNumber DcmTagKey(0x0018, 0x993a) +#define DCM_ReconstructionStartLocationSequence DcmTagKey(0x0018, 0x993b) +#define DCM_ReconstructionEndLocationSequence DcmTagKey(0x0018, 0x993c) +#define DCM_ReconstructionAlgorithmSequence DcmTagKey(0x0018, 0x993d) +#define DCM_ReconstructionTargetCenterLocationSequence DcmTagKey(0x0018, 0x993e) +#define DCM_ImageFilterDescription DcmTagKey(0x0018, 0x9941) +#define DCM_CTDIvolNotificationTrigger DcmTagKey(0x0018, 0x9942) +#define DCM_DLPNotificationTrigger DcmTagKey(0x0018, 0x9943) +#define DCM_AutoKVPSelectionType DcmTagKey(0x0018, 0x9944) +#define DCM_AutoKVPUpperBound DcmTagKey(0x0018, 0x9945) +#define DCM_AutoKVPLowerBound DcmTagKey(0x0018, 0x9946) +#define DCM_ProtocolDefinedPatientPosition DcmTagKey(0x0018, 0x9947) #define DCM_ContributingEquipmentSequence DcmTagKey(0x0018, 0xa001) #define DCM_ContributionDateTime DcmTagKey(0x0018, 0xa002) #define DCM_ContributionDescription DcmTagKey(0x0018, 0xa003) @@ -1361,6 +1443,7 @@ #define DCM_RETIRED_AcquisitionsInStudy DcmTagKey(0x0020, 0x1004) #define DCM_RETIRED_ImagesInStudy DcmTagKey(0x0020, 0x1005) #define DCM_RETIRED_Reference DcmTagKey(0x0020, 0x1020) +#define DCM_TargetPositionReferenceIndicator DcmTagKey(0x0020, 0x103f) #define DCM_PositionReferenceIndicator DcmTagKey(0x0020, 0x1040) #define DCM_SliceLocation DcmTagKey(0x0020, 0x1041) #define DCM_RETIRED_OtherStudyNumbers DcmTagKey(0x0020, 0x1070) @@ -1807,6 +1890,9 @@ #define DCM_SegmentedGreenPaletteColorLookupTableData DcmTagKey(0x0028, 0x1222) #define DCM_SegmentedBluePaletteColorLookupTableData DcmTagKey(0x0028, 0x1223) #define DCM_SegmentedAlphaPaletteColorLookupTableData DcmTagKey(0x0028, 0x1224) +#define DCM_StoredValueColorRangeSequence DcmTagKey(0x0028, 0x1230) +#define DCM_MinimumStoredValueMapped DcmTagKey(0x0028, 0x1231) +#define DCM_MaximumStoredValueMapped DcmTagKey(0x0028, 0x1232) #define DCM_BreastImplantPresent DcmTagKey(0x0028, 0x1300) #define DCM_PartialView DcmTagKey(0x0028, 0x1350) #define DCM_PartialViewDescription DcmTagKey(0x0028, 0x1351) @@ -2606,6 +2692,7 @@ #define DCM_SegmentNumber DcmTagKey(0x0062, 0x0004) #define DCM_SegmentLabel DcmTagKey(0x0062, 0x0005) #define DCM_SegmentDescription DcmTagKey(0x0062, 0x0006) +#define DCM_SegmentationAlgorithmIdentificationSequence DcmTagKey(0x0062, 0x0007) #define DCM_SegmentAlgorithmType DcmTagKey(0x0062, 0x0008) #define DCM_SegmentAlgorithmName DcmTagKey(0x0062, 0x0009) #define DCM_SegmentIdentificationSequence DcmTagKey(0x0062, 0x000a) @@ -2866,6 +2953,7 @@ #define DCM_FiducialUID DcmTagKey(0x0070, 0x031a) #define DCM_FiducialSetSequence DcmTagKey(0x0070, 0x031c) #define DCM_FiducialSequence DcmTagKey(0x0070, 0x031e) +#define DCM_FiducialsPropertyCategoryCodeSequence DcmTagKey(0x0070, 0x031f) #define DCM_GraphicLayerRecommendedDisplayCIELabValue DcmTagKey(0x0070, 0x0401) #define DCM_BlendingSequence DcmTagKey(0x0070, 0x0402) #define DCM_RelativeOpacity DcmTagKey(0x0070, 0x0403) @@ -3188,6 +3276,7 @@ #define DCM_RecommendedDefaultValueSequence DcmTagKey(0x0082, 0x0035) #define DCM_ConstraintViolationSignificance DcmTagKey(0x0082, 0x0036) #define DCM_ConstraintViolationCondition DcmTagKey(0x0082, 0x0037) +#define DCM_ModifiableConstraintFlag DcmTagKey(0x0082, 0x0038) #define DCM_StorageMediaFileSetID DcmTagKey(0x0088, 0x0130) #define DCM_StorageMediaFileSetUID DcmTagKey(0x0088, 0x0140) #define DCM_IconImageSequence DcmTagKey(0x0088, 0x0200) @@ -3441,7 +3530,7 @@ #define DCM_ROIElementalCompositionSequence DcmTagKey(0x3006, 0x00b6) #define DCM_ROIElementalCompositionAtomicNumber DcmTagKey(0x3006, 0x00b7) #define DCM_ROIElementalCompositionAtomicMassFraction DcmTagKey(0x3006, 0x00b8) -#define DCM_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9) +#define DCM_RETIRED_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9) #define DCM_RETIRED_FrameOfReferenceRelationshipSequence DcmTagKey(0x3006, 0x00c0) #define DCM_RETIRED_RelatedFrameOfReferenceUID DcmTagKey(0x3006, 0x00c2) #define DCM_RETIRED_FrameOfReferenceTransformationType DcmTagKey(0x3006, 0x00c4) @@ -3486,6 +3575,7 @@ #define DCM_MeasuredDoseReferenceNumber DcmTagKey(0x3008, 0x0064) #define DCM_ParameterPointer DcmTagKey(0x3008, 0x0065) #define DCM_OverrideReason DcmTagKey(0x3008, 0x0066) +#define DCM_ParameterValueNumber DcmTagKey(0x3008, 0x0067) #define DCM_CorrectedParameterSequence DcmTagKey(0x3008, 0x0068) #define DCM_CorrectionValue DcmTagKey(0x3008, 0x006a) #define DCM_CalculatedDoseReferenceSequence DcmTagKey(0x3008, 0x0070) @@ -3881,6 +3971,7 @@ #define DCM_RangeModulatorGatingStartWaterEquivalentThickness DcmTagKey(0x300a, 0x0386) #define DCM_RangeModulatorGatingStopWaterEquivalentThickness DcmTagKey(0x300a, 0x0388) #define DCM_IsocenterToRangeModulatorDistance DcmTagKey(0x300a, 0x038a) +#define DCM_ScanSpotTimeOffset DcmTagKey(0x300a, 0x038f) #define DCM_ScanSpotTuneID DcmTagKey(0x300a, 0x0390) #define DCM_ScanSpotPrescribedIndices DcmTagKey(0x300a, 0x0391) #define DCM_NumberOfScanSpotPositions DcmTagKey(0x300a, 0x0392) diff --git a/dcmdata/include/dcmtk/dcmdata/dcdirrec.h b/dcmdata/include/dcmtk/dcmdata/dcdirrec.h index b53c7ffa..c409eabc 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcdirrec.h +++ b/dcmdata/include/dcmtk/dcmdata/dcdirrec.h @@ -237,22 +237,17 @@ public: * @param fromCharset name of the source character set(s) used for the conversion * @param toCharset name of the destination character set used for the conversion. * Only a single value is permitted (i.e. no code extensions). - * @param transliterate mode specifying whether a character that cannot be - * represented in the destination character encoding is approximated through one - * or more characters that look similar to the original one + * @param flags optional flag used to customize the conversion (see DCMTypes::CF_xxx) * @param updateCharset if OFTrue, the SpecificCharacterSet (0008,0005) element is * updated, i.e.\ the current value is either replaced or a new element is inserted * or the existing element is deleted. If OFFalse the SpecificCharacterSet element * remains unchanged. - * @param discardIllegal mode specifying whether characters that cannot be represented - * in the destination character encoding will be silently discarded * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition convertCharacterSet(const OFString &fromCharset, const OFString &toCharset, - const OFBool transliterate = OFFalse, - const OFBool updateCharset = OFFalse, - const OFBool discardIllegal = OFFalse); + const size_t flags = 0, + const OFBool updateCharset = OFFalse); /** convert all element values that are contained in this record and that are * affected by SpecificCharacterSet to the given destination character set. If not @@ -263,19 +258,14 @@ public: * denotes the default character repertoire, which is ASCII (7-bit). * @param toCharset name of the destination character set used for the conversion. * Only a single value is permitted (i.e. no code extensions). - * @param transliterate mode specifying whether a character that cannot be - * represented in the destination character encoding is approximated through one - * or more characters that look similar to the original one + * @param flags optional flag used to customize the conversion (see DCMTypes::CF_xxx) * @param ignoreCharset if OFTrue, the value of SpecificCharacterSet is ignored. * Also see checkForSpecificCharacterSet(). - * @param discardIllegal mode specifying whether characters that cannot be represented - * in the destination character encoding will be silently discarded * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition convertCharacterSet(const OFString &toCharset, - const OFBool transliterate = OFFalse, - const OFBool ignoreCharset = OFFalse, - const OFBool discardIllegal = OFFalse); + const size_t flags = 0, + const OFBool ignoreCharset = OFFalse); /** convert all element values that are contained in this record and that are * affected by SpecificCharacterSet from the currently selected source character diff --git a/dcmdata/include/dcmtk/dcmdata/dcelem.h b/dcmdata/include/dcmtk/dcmdata/dcelem.h index bc330ad1..f478c1f3 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcelem.h +++ b/dcmdata/include/dcmtk/dcmdata/dcelem.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -30,6 +30,7 @@ // forward declarations class DcmInputStreamFactory; +class DcmJsonFormat; class DcmFileCache; class DcmItem; @@ -214,6 +215,14 @@ class DCMTK_DCMDATA_EXPORT DcmElement virtual OFCondition writeXML(STD_NAMESPACE ostream &out, const size_t flags = 0); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + /** special write method for creation of digital signatures * @param outStream DICOM output stream * @param oxfer output transfer syntax @@ -826,6 +835,7 @@ class DCMTK_DCMDATA_EXPORT DcmElement /** This function creates a byte array of Length bytes and returns this * array. In case Length is odd, an array of Length+1 bytes will be * created and Length will be increased by 1. + * @return pointer to created byte array */ virtual Uint8 *newValueField(); @@ -851,6 +861,20 @@ class DCMTK_DCMDATA_EXPORT DcmElement virtual void writeXMLEndTag(STD_NAMESPACE ostream &out, const size_t flags); + /** write element start tag in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format the output + */ + virtual void writeJsonOpener(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + + /** write element end tag in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format the output + */ + virtual void writeJsonCloser(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + /** return the current byte order of the value field * @return current byte order of the value field */ diff --git a/dcmdata/include/dcmtk/dcmdata/dcerror.h b/dcmdata/include/dcmtk/dcmdata/dcerror.h index 5aa0262f..3b1c2833 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcerror.h +++ b/dcmdata/include/dcmtk/dcmdata/dcerror.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -70,7 +70,7 @@ const unsigned short OFM_dcmiod = 29; const unsigned short OFM_dcmseg = 30; const unsigned short OFM_dcmfg = 31; const unsigned short OFM_dcmtract = 32; - +const unsigned short OFM_dcmpmap = 33; // condition constants @@ -161,6 +161,12 @@ extern DCMTK_DCMDATA_EXPORT const OFConditionConst EC_MissingAttribute; extern DCMTK_DCMDATA_EXPORT const OFConditionConst EC_InternalError; /// Invalid character, e.g. non-ASCII character used but no Specific Character Set defined extern DCMTK_DCMDATA_EXPORT const OFConditionConst EC_InvalidCharacter; +/// Illegal element with OB or OW Value Representation and undefined length encountered +extern DCMTK_DCMDATA_EXPORT const OFConditionConst EC_UndefinedLengthOBOW; +/// Illegal VOI LUT Sequence element with OB or OW Value Representation and explicit length encountered +extern DCMTK_DCMDATA_EXPORT const OFConditionConst EC_VOI_LUT_OBOW; +/// Pixel data in top level dataset in compressed Transfer Syntax uses explicit length (undefined required) +extern DCMTK_DCMDATA_EXPORT const OFConditionConst EC_PixelDataExplLengthIllegal; //@} // status code constants @@ -174,5 +180,4 @@ extern DCMTK_DCMDATA_EXPORT const unsigned short EC_CODE_CannotConvertToXML; /// error, cannot determine start fragment (of compressed pixel data) extern DCMTK_DCMDATA_EXPORT const unsigned short EC_CODE_CannotDetermineStartFragment; - #endif /* !DCERROR_H */ diff --git a/dcmdata/include/dcmtk/dcmdata/dcfilefo.h b/dcmdata/include/dcmtk/dcmdata/dcfilefo.h index 6a3e331f..6d48e74d 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcfilefo.h +++ b/dcmdata/include/dcmtk/dcmdata/dcfilefo.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,7 @@ // forward declarations class DcmMetaInfo; +class DcmJsonFormat; class DcmInputStream; class DcmOutputStream; class DcmRepresentationParameter; @@ -128,6 +129,7 @@ class DCMTK_DCMDATA_EXPORT DcmFileFormat * in metainfo and contain correct values. * @param oxfer the transfer syntax which shall be used * @param writeMode flag indicating whether to update the file meta information or not + * @return EC_Normal if valid, an error code otherwise */ virtual OFCondition validateMetaInfo(const E_TransferSyntax oxfer, const E_FileWriteMode writeMode = EWM_fileformat); @@ -232,6 +234,28 @@ class DCMTK_DCMDATA_EXPORT DcmFileFormat virtual OFCondition writeXML(STD_NAMESPACE ostream &out, const size_t flags = 0); + /** write object in JSON format. + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + + /** write object in JSON format. + * @tparam Format the formatter class, e.g. DcmJsonFormatPretty. + * Will be deduced automatically. + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + template + OFCondition writeJson(STD_NAMESPACE ostream &out, + Format format) + { + return writeJson(out, OFstatic_cast(DcmJsonFormat&, format)); + } + /** load object from a DICOM file. * This method supports DICOM objects stored as a file (with meta header) or as a * dataset (without meta header). By default, the presence of a meta header is @@ -374,17 +398,12 @@ class DCMTK_DCMDATA_EXPORT DcmFileFormat * @param fromCharset name of the source character set(s) used for the conversion * @param toCharset name of the destination character set used for the conversion. * Only a single value is permitted (i.e. no code extensions). - * @param transliterate mode specifying whether a character that cannot be - * represented in the destination character encoding is approximated through one - * or more characters that look similar to the original one - * @param discardIllegal mode specifying whether characters that cannot be represented - * in the destination character encoding will be silently discarded + * @param flags optional flag used to customize the conversion (see DCMTypes::CF_xxx) * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition convertCharacterSet(const OFString &fromCharset, const OFString &toCharset, - const OFBool transliterate = OFFalse, - const OFBool discardIllegal = OFFalse); + const size_t flags = 0); /** convert all element values that are contained in the dataset and that are affected * by SpecificCharacterSet to the given destination character set. The source @@ -397,16 +416,11 @@ class DCMTK_DCMDATA_EXPORT DcmFileFormat * checked nor updated, since the Basic Directory IOD has no SOP Common Module. * @param toCharset name of the destination character set used for the conversion. * Only a single value is permitted (i.e. no code extensions). - * @param transliterate mode specifying whether a character that cannot be - * represented in the destination character encoding is approximated through one - * or more characters that look similar to the original one - * @param discardIllegal mode specifying whether characters that cannot be represented - * in the destination character encoding will be silently discarded + * @param flags optional flag used to customize the conversion (see DCMTypes::CF_xxx) * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition convertCharacterSet(const OFString &toCharset, - const OFBool transliterate = OFFalse, - const OFBool discardIllegal = OFFalse); + const size_t flags = 0); /** convert all element values that are contained in the dataset and that are affected * by SpecificCharacterSet from the currently selected source character set to the @@ -419,7 +433,8 @@ class DCMTK_DCMDATA_EXPORT DcmFileFormat /** convert all element values that are contained in the dataset and that are * affected by SpecificCharacterSet to UTF-8 (Unicode). The value of the * SpecificCharacterSet (0008,0005) element is updated, set or deleted automatically - * if needed. The transliteration mode is disabled - see convertCharacterSet(). + * if needed. The transliteration mode is disabled, i.e. the conversion flags are + * explicitly set to 0 - see convertCharacterSet(). * NB: In case of a DICOMDIR, the SpecificCharacterSet in the main dataset is neither * checked nor updated, since the Basic Directory IOD has no SOP Common Module. * @return status, EC_Normal if successful, an error code otherwise diff --git a/dcmdata/include/dcmtk/dcmdata/dcitem.h b/dcmdata/include/dcmtk/dcmdata/dcitem.h index 0c917352..a06dfa0d 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcitem.h +++ b/dcmdata/include/dcmtk/dcmdata/dcitem.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -33,8 +33,9 @@ // forward declarations -class DcmSequenceOfItems; class DcmElement; +class DcmJsonFormat; +class DcmSequenceOfItems; class DcmSpecificCharacterSet; @@ -262,6 +263,14 @@ class DCMTK_DCMDATA_EXPORT DcmItem virtual OFCondition writeXML(STD_NAMESPACE ostream&out, const size_t flags = 0); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream&out, + DcmJsonFormat &format); + /** special write method for creation of digital signatures * @param outStream DICOM output stream * @param oxfer output transfer syntax @@ -318,22 +327,17 @@ class DCMTK_DCMDATA_EXPORT DcmItem * @param fromCharset name of the source character set(s) used for the conversion * @param toCharset name of the destination character set used for the conversion. * Only a single value is permitted (i.e. no code extensions). - * @param transliterate mode specifying whether a character that cannot be - * represented in the destination character encoding is approximated through one - * or more characters that look similar to the original one + * @param flags optional flag used to customize the conversion (see DCMTypes::CF_xxx) * @param updateCharset if OFTrue, the SpecificCharacterSet (0008,0005) element is * updated, i.e.\ the current value is either replaced or a new element is inserted * or the existing element is deleted. If OFFalse the SpecificCharacterSet element * remains unchanged. - * @param discardIllegal mode specifying whether characters that cannot be represented - * in the destination character encoding will be silently discarded * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition convertCharacterSet(const OFString &fromCharset, const OFString &toCharset, - const OFBool transliterate = OFFalse, - const OFBool updateCharset = OFFalse, - const OFBool discardIllegal = OFFalse); + const size_t flags = 0, + const OFBool updateCharset = OFFalse); /** convert all element values that are contained in this item and that are affected * by SpecificCharacterSet to the given destination character set. If not disabled, @@ -344,19 +348,14 @@ class DCMTK_DCMDATA_EXPORT DcmItem * default character repertoire, which is ASCII (7-bit). * @param toCharset name of the destination character set used for the conversion. * Only a single value is permitted (i.e. no code extensions). - * @param transliterate mode specifying whether a character that cannot be - * represented in the destination character encoding is approximated through one - * or more characters that look similar to the original one + * @param flags optional flag used to customize the conversion (see DCMTypes::CF_xxx) * @param ignoreCharset if OFTrue, the value of SpecificCharacterSet is ignored. * Also see checkForSpecificCharacterSet(). - * @param discardIllegal mode specifying whether characters that cannot be represented - * in the destination character encoding will be silently discarded * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition convertCharacterSet(const OFString &toCharset, - const OFBool transliterate = OFFalse, - const OFBool ignoreCharset = OFFalse, - const OFBool discardIllegal = OFFalse); + const size_t flags = 0, + const OFBool ignoreCharset = OFFalse); /** convert all element values that are contained in this item and that are affected * by SpecificCharacterSet from the currently selected source character set to the @@ -369,7 +368,8 @@ class DCMTK_DCMDATA_EXPORT DcmItem /** convert all element values that are contained in this item and that are affected * by SpecificCharacterSet to UTF-8 (Unicode). The value of the SpecificCharacterSet * (0008,0005) element is updated, set or deleted automatically if needed. The - * transliteration mode is disabled - see convertCharacterSet(). + * transliteration mode is disabled, i.e. the conversion flags are explicitly set to + * 0 - see convertCharacterSet(). * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition convertToUTF8(); @@ -1211,6 +1211,21 @@ class DCMTK_DCMDATA_EXPORT DcmItem DcmItem *item, const signed long itemNum = -2); + /** creates new DICOM element from given attribute tag + * @param tag attribute tag of the element to be created + * @return pointer to newly created element upon success, NULL pointer otherwise + */ + static DcmElement *newDicomElement(const DcmTagKey &tag); + + /** creates new DICOM element from given attribute tag + * @param newElement pointer to newly created element returned in this parameter + * upon success, NULL pointer otherwise + * @param tag attribute tag of the element to be created + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition newDicomElement(DcmElement *&newElement, + const DcmTagKey &tag); + protected: /// the list of elements maintained by this object @@ -1228,8 +1243,6 @@ class DCMTK_DCMDATA_EXPORT DcmItem */ offile_off_t fStartPosition; - protected: - /** This function reads tag and length information from inStream and * returns this information to the caller. When reading information, * the transfer syntax which was passed is accounted for. If the @@ -1308,6 +1321,31 @@ class DCMTK_DCMDATA_EXPORT DcmItem void updateSpecificCharacterSet(OFCondition &status, const DcmSpecificCharacterSet &converter); + /** creates new DICOM element from given attribute tag. + * Helper function used by DICOM parser (friend of this class) and thus + * hidden from the public interface. DcmItem's readSubElement() uses + * this function when reading new elements from input data. This method + * internally sets the length of the new element, but does not allocate + * any memory for the element's value. Thus subsequent access to an element + * created by this method can lead to crashes. DcmItem instead initializes + * the value itself a bit later during the read process. + * @param newElement pointer to newly created element returned in this + * parameter upon success, NULL pointer otherwise + * @param tag attribute tag of the element to be created. VR of tag may be + * updated within the method. + * @param length attribute value length of the element to be created + * @param privateCreatorCache cache object for private creator strings in + * the current dataset + * @param readAsUN flag indicating whether parser is currently handling + * UN element that must be read in implicit VR little endian; updated + * upon return + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition newDicomElement(DcmElement *&newElement, + DcmTag &tag, + const Uint32 length, + DcmPrivateTagCache *privateCreatorCache, + OFBool& readAsUN); private: @@ -1390,41 +1428,6 @@ inline OFBool operator>=(const DcmItem& lhs, const DcmItem& rhs) // SUPPORT FUNCTIONS // -/** helper function for DICOM parser. Creates new DICOM element from given attribute tag - * @param newElement pointer to newly created element returned in this parameter upon success, - * NULL pointer otherwise - * @param tag attribute tag of the element to be created - * @param length attribute value length of the element to be created - * @param privateCreatorCache cache object for private creator strings in the current dataset - * @param readAsUN flag indicating whether parser is currently handling a UN element that - * must be read in implicit VR little endian; updated upon return - * @return EC_Normal upon success, an error code otherwise - */ -DCMTK_DCMDATA_EXPORT OFCondition newDicomElement(DcmElement *&newElement, - DcmTag &tag, - const Uint32 length, - DcmPrivateTagCache *privateCreatorCache, - OFBool& readAsUN); - -/** helper function for DICOM parser. Creates new DICOM element from given attribute tag - * @param newElement pointer to newly created element returned in this parameter upon success, - * NULL pointer otherwise - * @param tag attribute tag of the element to be created - * @param length attribute value length of the element to be created - * @return EC_Normal upon success, an error code otherwise - */ -DCMTK_DCMDATA_EXPORT OFCondition newDicomElement(DcmElement *&newElement, - const DcmTag &tag, - const Uint32 length = 0); - -/** helper function for DICOM parser. Creates new DICOM element from given attribute tag - * @param tag attribute tag of the element to be created - * @param length attribute value length of the element to be created - * @return pointer to newly created element returned in this parameter upon success, - * NULL pointer otherwise - */ -DCMTK_DCMDATA_EXPORT DcmElement *newDicomElement(const DcmTag &tag, - const Uint32 length = 0); /** helper function for DcmElement::nextObject. * hierarchically traverses all datasets/items after the position indicated by the call stack diff --git a/dcmdata/include/dcmtk/dcmdata/dcjson.h b/dcmdata/include/dcmtk/dcmdata/dcjson.h new file mode 100755 index 00000000..6fa0c27c --- /dev/null +++ b/dcmdata/include/dcmtk/dcmdata/dcjson.h @@ -0,0 +1,407 @@ +/* +* +* Copyright (C) 2017, OFFIS e.V. +* All rights reserved. See COPYRIGHT file for details. +* +* This software and supporting documentation were developed by +* +* OFFIS e.V. +* R&D Division Health +* Escherweg 2 +* D-26121 Oldenburg, Germany +* +* +* Module: dcmdata +* +* Author: Sebastian Grallert +* +* Purpose: Providing basic JSON formatting functionalities +* +*/ + +#ifndef DCJSON_H +#define DCJSON_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/ofdefine.h" +#include "dcmtk/ofstd/ofstring.h" + +#include "dcmtk/dcmdata/dctagkey.h" + +/** Class for handling JSON format options. + * Base class to implement custom formatting. + * Purpose: + * - individual output formatting + * - normalization of DecimalString and IntegerString e.g.\ normalization of leading zeros + * - escaping of special JSON control characters + * - outputting the correct indention and symbols for "Value", "BulkDataURI", etc. + * + *

Usage Example:

+ * @code{.cpp} + #include "dcmtk/dcmdata/dcjson.h" + // ... + DcmFileFormat fileformat; + if(fileformat.loadFile("test.dcm").good()) + { + // print the DICOM file in JSON format + // using the pretty format (muti-line with indention and other whitespace) + fileformat.writeJson(COUT, DcmJsonFormatPretty(OFTrue)); + + // using the compact (single line, without unneeded whitespace) format + fileformat.writeJson(COUT, DcmJsonFormatCompact(OFTrue)); + } + @endcode + *

Implementing a custom formatter:

+ * @code{.cpp} + struct CustomJsonFormat : DcmJsonFormatPretty + { + CustomJsonFormat(const OFBool printMetaheaderInformation = OFTrue) + : DcmJsonFormatPretty(printMetaheaderInformation) + { + + } + + OFString OFJsonFormatExample::space() + { + // use tabstops instead of spaces for indention + return "\t"; + } + } + @endcode + */ +class DCMTK_DCMDATA_EXPORT DcmJsonFormat +{ +public: + /** A class to create small proxy objects that ease indention handling. + * Each Indention object only contains a reference to the DcmJsonFormat object + * that created it and its only purpose is to call the respective methods + * of that object when one of its overloaded operators is used. + */ + class Indention + { + public: + /** output current indention to an output stream. + * @param out the output stream to use + * @param indention the indention to print + * @return out + */ + friend inline STD_NAMESPACE ostream& operator<<(STD_NAMESPACE ostream& out, const Indention& indention) + { + indention.printIndention(out); + return out; + } + + /** increases current indention. + * @return *this + */ + inline Indention& operator++() + { + m_Format.increaseIndention(); + return *this; + } + + /** decreases current indention + * @return *this + */ + inline Indention& operator--() + { + m_Format.decreaseIndention(); + return *this; + } + + private: + /// allow DcmJsonFormat to use this class' private members + friend class DcmJsonFormat; + + /// private constructor, used by DcmJsonFormat + inline Indention(DcmJsonFormat& format) : m_Format(format) + { + + } + + /// prints the current indention using the parent formatter + inline void printIndention(STD_NAMESPACE ostream& out) const + { + m_Format.printIndention(out); + } + + /// reference to the parent formatter object + DcmJsonFormat& m_Format; + }; + + /** Escapes all forbidden control characters in JSON + * @param out output stream to which the escaped String is written + * @param value String that should be escaped + */ + static void escapeControlCharacters(STD_NAMESPACE ostream &out, OFString const &value); + + /** Normalize Decimal String to specific JSON format. + * remove leading zeros, except before dot. + * @b Example: + * @code{.txt} + 00.123 --> 0.123 + 023.12 --> 23.12 + -01.00 --> -1.00 + 0200 --> 200 + .12 --> 0.12 + 000.1 --> 0.1 + @endcode + * @param value String that should be normalize + */ + static void normalizeDecimalString(OFString &value); + + /** Normalize Integer String to specific JSON format. + * remove leading zeros, except before dot. + * @b Example: + * @code{.txt} + 000 --> 0 + 023 --> 23 + -01 --> -1 + 0200 --> 200 + @endcode + * @param value String that should be normalize + */ + static void normalizeIntegerString(OFString &value); + + /** Prints either null if empty or the string value + * (with all illegal characters escaped). + * @param out output stream to which the Value prefix is written + * @param value String that should be printed + */ + static void printString(STD_NAMESPACE ostream &out, + const OFString &value); + + /** Prints either null if empty or a quoted string + * (with leading and ending quotation marks and all + * illegal characters escaped). + * @param out output stream to which the Value prefix is written + * @param value String that should be printed + */ + static void printValueString(STD_NAMESPACE ostream &out, + const OFString &value); + + /** Print either null if empty or a Number as normelized IntegerString + * @param out output stream to which the Value prefix is written + * @param value String that should be printed + */ + static void printNumberInteger(STD_NAMESPACE ostream &out, + OFString &value); + + /** Print either null if empty or a Number as normelized IntegerDecimal + * @param out output stream to which the Value prefix is written + * @param value String that should be printed + */ + static void printNumberDecimal(STD_NAMESPACE ostream &out, + OFString &value); + + /** Constructor + * @param printMetaheaderInformation parameter that defines if meta information should be written + */ + inline DcmJsonFormat(const OFBool printMetaheaderInformation) + : printMetaheaderInformation(printMetaheaderInformation) + { + + } + + /** Method to return line break(s) + * @return line break(s). + */ + virtual OFString newline() = 0; + + /** Method to return whitespace(s) + * @return whitespace(s). + */ + virtual OFString space() = 0; + + /** Method to return an indention proxy object for increasing, decreasing or printing indention + * @return an indention proxy object. + */ + inline Indention indent() + { + return Indention(*this); + } + + /** Check if an attribute should be exported as BulkDataURI. + * Override this function to implement bulk data URI output. + * @param tag the tag of the attribute being printed, for letting + * the implementation decide how to handle it. + * @param uri the resulting URI to output. + * @return OFTrue if yes, OFFalse if no. + * @details + *

Usage Example:

+ * @code{.cpp} + struct BulkDataURIJsonFormat : DcmJsonFormatPretty + { + CustomJsonFormat(const OFBool printMetaheaderInformation = OFTrue, + ... bulkDataURIDatabase) + : DcmJsonFormatPretty(printMetaheaderInformation) + , TheDatabase(bulkDataURIDatabase) + { + + } + + virtual OFBool asBulkDataURI(const DcmTagKey& tag, OFString& uri) + { + ... result = TheDatabase.findBulkDataFor(tag); + if (result.found()) + { + uri = result.uri(); + return OFTrue; + } + return OFFalse; + } + + ... TheDatabase; + } + @endcode + */ + virtual OFBool asBulkDataURI(const DcmTagKey& tag, OFString& uri); + + /** Print the Prefix which for JSON Values needed + * with indention and newlines as in the format Variable given. + * @b Example: + * @code{.txt} + ,"Value":[ + @endcode + * @param out output stream to which the Value prefix is written + */ + virtual void printValuePrefix(STD_NAMESPACE ostream &out); + + /** Print the Suffix which for JSON Values needed + * with indention and newlines as in the format Variable given. + * @b Example: + * @code{.txt} + ]\n + @endcode + * @param out output stream to which the Value prefix is written + */ + virtual void printValueSuffix(STD_NAMESPACE ostream &out); + + /** Print the Prefix which for JSON BulkDataURI needed + * with indention and newlines as in the format Variable given. + * @b Example: + * @code{.txt} + ,"BulkDataURI": + @endcode + * @param out output stream to which the Value prefix is written + */ + virtual void printBulkDataURIPrefix(STD_NAMESPACE ostream &out); + + /** Print the Prefix which for JSON InlineBinary needed + * with indention and newlines as the format specifies. + * @b Example: + * @code{.txt} + ,"InlineBinary": + @endcode + * @param out output stream to which the Value prefix is written + */ + virtual void printInlineBinaryPrefix(STD_NAMESPACE ostream &out); + + /** Print the prefix for array elements (except the first one), with + * indention and newlines as the format specifies. + * @b Example: + * @code{.txt} + Example,\n + Example... + @endcode + * @param out output stream to which the Value prefix is written + */ + virtual void printNextArrayElementPrefix(STD_NAMESPACE ostream &out); + + /** Option that defines if metaheader information should be printed. + */ + const OFBool printMetaheaderInformation; + +protected: + /** Indent to the specific level. + * @param out output stream to which the indention is written. + */ + virtual void printIndention(STD_NAMESPACE ostream& out) = 0; + + /** Used for increasing the indention level. + */ + virtual void increaseIndention() = 0; + + /** Used for decreasing the indention level. + */ + virtual void decreaseIndention() = 0; +}; + + +/** Subclass for handling JSON formatted output. + * Standard class for formatted output. + */ +class DCMTK_DCMDATA_EXPORT DcmJsonFormatPretty : public DcmJsonFormat +{ +private: + /** Variable for the indentenlevel of DcmJsonFormat + */ + unsigned m_IndentionLevel; + +public: + /** DcmJsonFormatPretty constructor + * @param printMetaheaderInformation Enable/Disable including Metaheader in the output + */ + explicit DcmJsonFormatPretty(const OFBool printMetaheaderInformation = OFTrue); + + /** Indent to the specific level. + * @param out output stream to which the indention is written. + */ + void printIndention(STD_NAMESPACE ostream& out); + + /** Increase the indention level. + */ + void increaseIndention(); + + /** Decrease the indention level. + */ + void decreaseIndention(); + + /** Print a newline + * @returns a newline + */ + OFString newline(); + + /** Print a space + * @returns a space + */ + OFString space(); +}; + +/** Subclass for handling JSON formatted output. + * Standard class for non-formatted output. + */ +class DCMTK_DCMDATA_EXPORT DcmJsonFormatCompact : public DcmJsonFormat +{ +public: + /** DcmJsonFormatCompact constructor + * @param printMetaheaderInformation Enable/Disable including Metaheader in the output + */ + explicit DcmJsonFormatCompact(const OFBool printMetaheaderInformation = OFTrue); + + /** Does nothing. + * @param out output stream to which the indention is written. + */ + void printIndention(STD_NAMESPACE ostream& out); + + /** Does nothing. + */ + void increaseIndention(); + + /** Does nothing. + */ + void decreaseIndention(); + + /** Does nothing. + * @returns a empty String. + */ + OFString newline(); + + /** Does nothing. + * @returns a empty String. + */ + OFString space(); +}; + +#endif /* DCJSON_H */ diff --git a/dcmdata/include/dcmtk/dcmdata/dcmatch.h b/dcmdata/include/dcmtk/dcmdata/dcmatch.h new file mode 100644 index 00000000..31e1b7e4 --- /dev/null +++ b/dcmdata/include/dcmtk/dcmdata/dcmatch.h @@ -0,0 +1,246 @@ +/* + * + * Copyright (C) 2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmdata + * + * Author: Jan Schlamelcher + * + * Purpose: Implementing attribute matching for being used in dcmqrdb and dcmwlm etc. + * + */ + + +#ifndef DCMATCH_H +#define DCMATCH_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/ofcond.h" +#include "dcmtk/dcmdata/dcdefine.h" + +// forward declaration of DcmVR +class DcmVR; + +/** A class that implements the different kinds attribute matching. + * DcmAttributeMatching may either be used by directly calling the appropriate matching function, + * e.g. wildCardMatching() or by creating a DcmAttributeMatching object for a specific VR. + * In the latter case, DcmAttributeMatching will choose the appropriate matching function for + * the VR in its constructor and remember the result during its lifetime. + */ +class DCMTK_DCMDATA_EXPORT DcmAttributeMatching +{ +public: + + /** Match the query data and the candidate using Single Value Matching, as defined by the DICOM standard. + * @param queryData a pointer to some data. + * @param querySize the size (in bytes) of the data queryData refers to. + * @param candidateData a pointer to some data. + * @param candidateSize the size (in bytes) of the data candidateData refers to. + * @return OFTrue if the query and the candidate match, OFFalse otherwise. + * @details + * If querySize equals zero, the result will be OFTrue, as appropriate for Universal Matching. + * Otherwise the result will only be OFTrue if both data pieces have the same size are bitwise + * equal. + */ + static OFBool singleValueMatching( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ); + + /** Match the query and the candidate string using Wild Card Matching, as defined by the DICOM standard. + * @param queryData a pointer to a character string potentially containing Wild Card characters. + * @param querySize the size (in bytes) of the string queryData refers to. + * @param candidateData a pointer to a character string. + * @param candidateSize the size (in bytes) of the string candidateData refers to. + * @return OFTrue if the query and the candidate match, OFFalse otherwise. + * @details + * If querySize equals zero, the result will be OFTrue, as appropriate for Universal Matching. + * If the query contains no Wild Card characters ('?' and '*') the result will be the same + * as if singleValueMatching() was called. + * @note It is therefore not necessary to check for Wild Card characters and manually decided whether + * to use wildCardMatching() or singleValueMatching(), simply use wildCardMatching() if the query + * may potentially contain Wild Card characters. + */ + static OFBool wildCardMatching( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ); + + /** Match the query date or date range and the candidate date. + * @param queryData a pointer to a character string that contains a DICOM Date (DA) or + * a date range. + * @param querySize the size (in bytes) of the string queryData refers to. + * @param candidateData a pointer to a character string that contains a DICOM Date (DA). + * @param candidateSize the size (in bytes) of the string candidateData refers to. + * @return OFTrue if the query and the candidate match, OFFalse otherwise. + * @details + * If querySize equals zero, the result will be OFTrue, as appropriate for Universal Matching. + * Otherwise query will be converted to an OFDate or a range defined by two OFDates and candidate + * will be converted to an OFDate. It will then be tested whether the candidate date lies within + * the range given by the query or is equal to the queried date as appropriate. If the conversion + * to OFDate is unsuccessful for any of the dates, the result will be OFFalse. + */ + static OFBool rangeMatchingDate( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ); + + /** Match the query time or time range and the candidate time. + * @param queryData a pointer to a character string that contains a DICOM Time (TM) or + * a time range. + * @param querySize the size (in bytes) of the string queryData refers to. + * @param candidateData a pointer to a character string that contains a DICOM Time (TM). + * @param candidateSize the size (in bytes) of the string candidateData refers to. + * @return OFTrue if the query and the candidate match, OFFalse otherwise. + * @details + * If querySize equals zero, the result will be OFTrue, as appropriate for Universal Matching. + * Otherwise query will be converted to an OFTime or a range defined by two OFTimes and candidate + * will be converted to an OFTime. It will then be tested whether the candidate time lies within + * the range given by the query or is equal to the queried time as appropriate. If the conversion + * to OFTime is unsuccessful for any of the times, the result will be OFFalse. + */ + static OFBool rangeMatchingTime( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ); + + /** Match the query date time or date time range and the candidate date time. + * @param queryData a pointer to a character string that contains a DICOM Date Time (DT) or + * a date time range. + * @param querySize the size (in bytes) of the string queryData refers to. + * @param candidateData a pointer to a character string that contains a DICOM Date Time (DT). + * @param candidateSize the size (in bytes) of the string candidateData refers to. + * @return OFTrue if the query and the candidate match, OFFalse otherwise. + * @details + * If querySize equals zero, the result will be OFTrue, as appropriate for Universal Matching. + * Otherwise query will be converted to an OFDateTime or a range defined by two OFDateTimes and + * candidate will be converted to an OFDateTime. It will then be tested whether the candidate date + * time lies within the range given by the query or is equal to the queried date time as appropriate. + * If the conversion to OFDateTime is unsuccessful for any of the date times, the result will be + * OFFalse. + */ + static OFBool rangeMatchingDateTime( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ); + + /** Match the query date and time or date and time range and the candidate date and time using + * combined datetime matching. + * @param dateQueryData a pointer to a character string that contains a DICOM Date (DA) or + * a date range. + * @param dateQuerySize the size (in bytes) of the string dateQueryData refers to. + * @param timeQueryData a pointer to a character string that contains a DICOM Time (TM) or + * a time range. + * @param timeQuerySize the size (in bytes) of the string timeQueryData refers to. + * @param dateCandidateData a pointer to a character string that contains a DICOM Date (DA). + * @param dateCandidateSize the size (in bytes) of the string dateCandidateData refers to. + * @param timeCandidateData a pointer to a character string that contains a DICOM Time (TM). + * @param timeCandidateSize the size (in bytes) of the string timeCandidateData refers to. + * @return OFTrue if the query and the candidate match, OFFalse otherwise. + * @details + * If dateQuerySize and timeQuerySize equal zero, the result will be OFTrue, as appropriate for + * Universal Matching. + * Otherwise the query will be converted to an OFDateTime or a range defined by two OFDateTimes and + * candidate will be converted to an OFDateTime as defined by combined datetime matching. + * It will then be tested whether the candidate date time lies within the range given by the query or is + * equal to the queried date time as appropriate. + * If the conversion to OFDateTime is unsuccessful for any of the dates or times, the result will + * be OFFalse. + */ + static OFBool rangeMatchingDateTime( const void* dateQueryData, const size_t dateQuerySize, + const void* timeQueryData, const size_t timeQuerySize, + const void* dateCandidateData, const size_t dateCandidateSize, + const void* timeCandidateData, const size_t timeCandidateSize ); + + /** Match the query list of UIDs with the candidate UID. + * @param queryData a pointer to a character string that contains a backslash separated list of UIDs. + * @param querySize the size (in bytes) of the string queryData refers to. + * @param candidateData a pointer to a character string that contains an UID. + * @param candidateSize the size (in bytes) of the string candidateData refers to. + * @return OFTrue if at least one of the UIDs from the query match the candidate, OFFalse otherwise. + * @details + * If querySize equals zero, the result will be OFTrue, as appropriate for Universal Matching. + */ + static OFBool listOfUIDMatching( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ); + + /** Default construct an empty DcmAttributeMatching object. + */ + DcmAttributeMatching(); + + /** Construct an DcmAttributeMatching object that is appropriate for the given VR. + * @param vr the DICOM Value Representation of the data that this object will be + * used on for matching. + */ + DcmAttributeMatching( const DcmVR vr ); + + /** Test whether this object may be used for matching, i.e.\ whether it is not empty. + * @return OFTrue if this object may be used for matching, OFFalse otherwise. + */ +#ifdef DCMTK_USE_CXX11_STL + explicit +#endif + operator OFBool() const; + + /** Test whether this object cannot be used for matching, i.e.\ whether it is empty. + * @return OFTrue if this object cannot be used for matching, OFFalse otherwise. + */ + OFBool operator!() const; + + /** Match the given query and candidate using the internally stored matching function. + * @param queryData a pointer some DICOM data that uses the same VR that was given + * during construction of this object. + * @param querySize the size (in bytes) of the data queryData refers to. + * @param candidateData a pointer to some DICOM data that used the same VR that was + * given during construction of this object. + * @param candidateSize the size (in bytes) of the data candidateData refers to. + * @return compares the query data with the candidate data using the appropriate + * matching function for the given VR, returns OFTrue if they match, OFFalse + * if not or if an error occured. + * @details + * @pre (*this) must have been constructed for a specific VR that matches the one + * of the query and candidate data, i.e.\ !(*this) must evaluate to OFFalse. + * @details + *

Usage Example

+ * @code{.cpp} + DcmAttributeMatching match( EVR_DA ); + match( "20160101-20181231", 17, "20170713", 8 ); // -> OFTrue + match = DcmAttributeMatching( EVR_TM ); + match( "-12", 3, "11", 2 ) // -> OFTrue + DcmAttributeMatching( EVR_PN )( "M?ller", 6, "^Martin", 7 ) // -> OFFalse + @endcode + */ + OFBool operator()( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) const; + +private: + + /// Helper class for implementing Wild Card Matching + class WildCardMatcher; + + /// Helper class for parsing dash-separated value pairs, as in date/time ranges. + class DashSeparated; + + /** Helper template function for generically implementing range matching. + * @tparam T the type to parse the data int (e.g. OFDate), deduced automatically. + * @param parse a pointer to a function that parses a string as a T. + * @param queryData a pointer to a character string that can be parsed as a T or + * a dash separated range of two Ts. + * @param querySize the size (in bytes) of the string queryData refers to. + * @param candidateData a pointer to a character string that can be parsed as a T + * for comparing it with the query. + * @param candidateSize the size (in bytes) of the string candidateData refers to. + * @return OFTrue if parsing of the query and the candidate as a T was successful + * and the T value represented by candidateData equals the one from the query or + * lies within the range defined by the query. OFFalse otherwise. + */ + template + static OFBool rangeMatchingTemplate( OFCondition (*parse)(const char*,const size_t,T&), + const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize); + + /// A pointer to one of the matching functions that is appropriate for the given VR. + OFBool (*m_pMatch)(const void*,const size_t,const void*,const size_t); +}; + +#endif // DCMATCH_H diff --git a/dcmdata/include/dcmtk/dcmdata/dcmetinf.h b/dcmdata/include/dcmtk/dcmdata/dcmetinf.h index 8fc39039..f0c880d8 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcmetinf.h +++ b/dcmdata/include/dcmtk/dcmdata/dcmetinf.h @@ -27,6 +27,9 @@ #include "dcmtk/dcmdata/dcitem.h" +// forward declarations +class DcmJsonFormat; + /// magic string identifying DICOM files #define DCM_Magic "DICM" @@ -60,6 +63,7 @@ class DCMTK_DCMDATA_EXPORT DcmMetaInfo /** assignment operator. * @param obj the metainfo to be copied + * @return reference to this object */ DcmMetaInfo &operator=(const DcmMetaInfo &obj); @@ -99,7 +103,8 @@ class DCMTK_DCMDATA_EXPORT DcmMetaInfo virtual void removeInvalidGroups(); /** return the transfer syntax in which this dataset was originally read. - * @return transfer syntax in which this dataset was originally read, EXS_Unknown if the dataset was created in memory + * @return transfer syntax in which this dataset was originally read, EXS_Unknown + * if the dataset was created in memory */ E_TransferSyntax getOriginalXfer() const; @@ -176,6 +181,14 @@ class DCMTK_DCMDATA_EXPORT DcmMetaInfo virtual OFCondition writeXML(STD_NAMESPACE ostream &out, const size_t flags = 0); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + /** load object from a DICOM file. If the file preamble is missing, an error is returned. * @param fileName name of the file to load (may contain wide chars if support enabled). * Since there are various constructors for the OFFilename class, a "char *", "OFString" @@ -213,6 +226,7 @@ class DCMTK_DCMDATA_EXPORT DcmMetaInfo /** peeks into the input stream and checks whether the next element * is group 0002, i.e. belongs to the meta-header + * @param inStream input stream * @return true if next element is part of meta-header, false otherwise */ OFBool nextTagIsMeta(DcmInputStream &inStream); @@ -225,7 +239,8 @@ class DCMTK_DCMDATA_EXPORT DcmMetaInfo * @param xtag attribute tag for group length * @param glenc handling of group length encoding element in dataset * @param headerLen output parameter; length of meta-header as encoded in group length element - * @param bytesRead output parameter; number of bytes read when reading group length (for counting the remaining number of meta-header bytes) + * @param bytesRead output parameter; number of bytes read when reading group length + * (for counting the remaining number of meta-header bytes) * @param maxReadLength max read length for elements * @return EC_Normal if successful, an error code otherwise */ diff --git a/dcmdata/include/dcmtk/dcmdata/dcobject.h b/dcmdata/include/dcmtk/dcmdata/dcobject.h index ed8c18de..4dadd592 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcobject.h +++ b/dcmdata/include/dcmtk/dcmdata/dcobject.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,6 +36,7 @@ // forward declarations class DcmItem; +class DcmJsonFormat; class DcmOutputStream; class DcmInputStream; class DcmWriteCache; @@ -199,6 +200,32 @@ extern DCMTK_DCMDATA_EXPORT OFGlobal dcmIgnoreFileMetaInformationGroupLe */ extern DCMTK_DCMDATA_EXPORT OFGlobal dcmReplaceWrongDelimitationItem; /* default OFFalse */ +/** This flag enables the "silent" conversion of illegal OB/OW elements + * with undefined length (other than PixelData) to SQ elements while reading. + * The default behaviour is to reject such elements with an error message. + */ +extern DCMTK_DCMDATA_EXPORT OFGlobal dcmConvertUndefinedLengthOBOWtoSQ; /* default OFFalse */ + +/** This flag enables the "silent" conversion of incorrectly encoded + * VOI LUT Sequence elements with VR=OW and explicit length into a sequence. + * This incorrect encoding was detected "in the wild" in 2016. + */ +extern DCMTK_DCMDATA_EXPORT OFGlobal dcmConvertVOILUTSequenceOWtoSQ; /* default OFFalse */ + +/** This flag influences the behaviour when reading Pixel Data elements. + * Pixel Data in those top level datasets that are using a compression-enabled + * Transfer Syntax (with few exceptions such as Deflated TS), + * is being stored in an encapsulated way. That means DICOM requires that the + * Pixel Data then element uses an undefined length and internally uses a + * pseudo sequence structure called Pixel Sequence with Pixel items inside. + * If this flag is set to OFFalse (default), an error is reported when reading + * datasets with encapsulated Transfer Syntaxes but with Pixel Data being + * stored using explicit length encoding. + * If this flag is set to OFTrue, such an invalid Pixel Data encoding is + * accepted and the element is read with the given length as if it would be the + * case for datasets in uncompressed transfer syntaxes. + */ +extern DCMTK_DCMDATA_EXPORT OFGlobal dcmUseExplLengthPixDataForEncTS; /* default OFFalse */ /** Abstract base class for most classes in module dcmdata. As a rule of thumb, * everything that is either a dataset or that can be identified with a DICOM @@ -350,6 +377,7 @@ class DCMTK_DCMDATA_EXPORT DcmObject /** set parent of this object. NULL means no parent. * NB: This method is used by derived classes for internal purposes only. + * @param parent pointer to the parent of this object */ inline void setParent(DcmObject *parent) { Parent = parent; } @@ -453,6 +481,14 @@ class DCMTK_DCMDATA_EXPORT DcmObject virtual OFCondition writeXML(STD_NAMESPACE ostream&out, const size_t flags = 0); + /** write object in JSON format to a stream + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, always returns EC_Illegal Call + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream&out, + DcmJsonFormat &format); + /** special write method for creation of digital signatures (abstract) * @param outStream DICOM output stream * @param oxfer output transfer syntax diff --git a/dcmdata/include/dcmtk/dcmdata/dcovlay.h b/dcmdata/include/dcmtk/dcmdata/dcovlay.h index ae340779..062f904f 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcovlay.h +++ b/dcmdata/include/dcmtk/dcmdata/dcovlay.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -57,6 +57,7 @@ public: /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ DcmOverlayData &operator=(const DcmOverlayData &obj) { diff --git a/dcmdata/include/dcmtk/dcmdata/dcpixseq.h b/dcmdata/include/dcmtk/dcmdata/dcpixseq.h index 647522b9..ccb7db5d 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcpixseq.h +++ b/dcmdata/include/dcmtk/dcmdata/dcpixseq.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -53,11 +53,14 @@ class DCMTK_DCMDATA_EXPORT DcmPixelSequence : public DcmSequenceOfItems { public: + // Make friend with DcmPixelData which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmPixelData; + /** constructor * @param tag attribute tag - * @param len length of the attribute value */ - DcmPixelSequence(const DcmTag &tag, const Uint32 len = 0); + DcmPixelSequence(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -69,6 +72,7 @@ public: /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ DcmPixelSequence &operator=(const DcmPixelSequence &obj); @@ -242,6 +246,19 @@ public: protected: + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag attribute tag + * @param len length of the attribute value + */ + DcmPixelSequence(const DcmTag &tag, + const Uint32 len); + /** helper function for read(). Create sub-object (pixel item) of the * appropriate type depending on the tag. * @param newObject upon success, a pointer to the newly created object is returned in this parameter diff --git a/dcmdata/include/dcmtk/dcmdata/dcpxitem.h b/dcmdata/include/dcmtk/dcmdata/dcpxitem.h index 45cd6dbc..220cc94f 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcpxitem.h +++ b/dcmdata/include/dcmtk/dcmdata/dcpxitem.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -63,6 +63,7 @@ class DCMTK_DCMDATA_EXPORT DcmPixelItem : public DcmOtherByteOtherWord /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ DcmPixelItem &operator=(const DcmPixelItem &obj) { DcmOtherByteOtherWord::operator=(obj); return *this; } diff --git a/dcmdata/include/dcmtk/dcmdata/dcsequen.h b/dcmdata/include/dcmtk/dcmdata/dcsequen.h index 5677d213..f4839dbe 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcsequen.h +++ b/dcmdata/include/dcmtk/dcmdata/dcsequen.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,9 @@ #include "dcmtk/dcmdata/dclist.h" #include "dcmtk/dcmdata/dcstack.h" +// forward declarations +class DcmJsonFormat; + /** class representing a DICOM Sequence of Items (SQ). * This class is derived from class DcmElement (and not from DcmObject) despite the fact * that sequences have no value field as such, they maintain a list of items. However, @@ -41,15 +44,14 @@ class DCMTK_DCMDATA_EXPORT DcmSequenceOfItems : public DcmElement { public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor * @param tag attribute tag - * @param len length of the attribute value - * @param readAsUN flag indicating whether the sequence should be - * read (interpreted) as a UN element with Implicit VR Little Endian encoding */ - DcmSequenceOfItems(const DcmTag &tag, - const Uint32 len = 0, - OFBool readAsUN = OFFalse); + DcmSequenceOfItems(const DcmTag &tag); /** copy constructor * @param oldSeq element to be copied @@ -61,6 +63,7 @@ public: /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ DcmSequenceOfItems &operator=(const DcmSequenceOfItems &obj); @@ -280,6 +283,14 @@ public: virtual OFCondition writeXML(STD_NAMESPACE ostream&out, const size_t flags = 0); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream&out, + DcmJsonFormat &format); + /** special write method for creation of digital signatures * @param outStream DICOM output stream * @param oxfer output transfer syntax @@ -501,6 +512,22 @@ public: protected: + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag attribute tag + * @param len length of the attribute value + * @param readAsUN flag indicating whether the sequence should be + * read (interpreted) as a UN element with Implicit VR Little Endian encoding + */ + DcmSequenceOfItems(const DcmTag &tag, + const Uint32 len, + OFBool readAsUN = OFFalse); + /** This function reads tag and length information from inStream and * returns this information to the caller. When reading information, * the transfer syntax which was passed is accounted for. If the diff --git a/dcmdata/include/dcmtk/dcmdata/dcspchrs.h b/dcmdata/include/dcmtk/dcmdata/dcspchrs.h index ca0f36c7..d4d8fc0a 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcspchrs.h +++ b/dcmdata/include/dcmtk/dcmdata/dcspchrs.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2011-2015, OFFIS e.V. + * Copyright (C) 2011-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,7 +36,7 @@ class DcmItem; /** A class for managing and converting between different DICOM character sets. * The conversion relies on the OFCharacterEncoding class, which again relies - * on the libiconv toolkit (if available). + * on an underlying character encoding library (e.g. libiconv or ICU). * @note Please note that a current limitation is that only a single value is * allowed for the destination character set (i.e. no code extensions). Of * course, for the source character set, also multiple values are supported. @@ -46,7 +46,7 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet public: - /** constructor. Initializes the member variables. + /** constructor. Initializes the member variables. */ DcmSpecificCharacterSet(); @@ -60,6 +60,23 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet */ void clear(); + /** query whether selectCharacterSet() has successfully been called for this + * object, i.e.\ whether convertString() may be called. + * @return OFTrue if selectCharacterSet() was successfully called before, + * OFFalse if not (or clear() has been called in the meantime). + */ +#ifdef DCMTK_USE_CXX11_STL + explicit +#endif + operator OFBool() const; + + /** query whether selectCharacterSet() has not been called before, + * i.e.\ convertString() would fail. + * @return OFTrue if selectCharacterSet() must be called before using + * convertString(), OFFalse if it has already been called. + */ + OFBool operator!() const; + /** get currently selected source DICOM character set(s). Please note that * the returned string can contain multiple values (defined terms separated * by a backslash) if code extension techniques are used. Furthermore, @@ -78,30 +95,22 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet */ const OFString &getDestinationCharacterSet() const; - /** get currently selected destination encoding, i.e. the name of the - * character set as used by libiconv for the conversion. If code - * extension techniques are used to switch between different character - * encodings, the main/default encoding is returned. + /** get currently selected destination encoding, i.e.\ the name of the + * character set as used by the underlying character encoding library for + * the conversion. If code extension techniques are used to switch between + * different character encodings, the main/default encoding is returned. * @return currently selected destination encoding or an empty string if * none is selected */ const OFString &getDestinationEncoding() const; - /** get mode specifying whether a character that cannot be represented in - * the destination character encoding is approximated through one or more - * characters that look similar to the original one. See - * selectCharacterSet(). - * @return current value of the mode. OFTrue means that the mode is - * enabled, OFFalse means disabled. + /** @copydoc OFCharacterEncoding::getConversionFlags() */ - OFBool getTransliterationMode() const; + unsigned getConversionFlags() const; - /** get mode specifying whether characters that cannot be represented in - * the destination character encoding will be silently discarded - * @return current value of the mode. OFTrue means that the mode is - * enabled, OFFalse means disabled. + /** @copydoc OFCharacterEncoding::setConversionFlags() */ - OFBool getDiscardIllegalSequenceMode() const; + OFCondition setConversionFlags(const unsigned flags); /** select DICOM character sets for the input and output string, between * which subsequent calls of convertString() convert. The defined terms @@ -112,32 +121,20 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet * (separated by a backslash) code extension techniques are used and * escape sequences may be encountered in the source string to switch * between the specified character sets. - * @param fromCharset name of the source character set(s) used for the - * input string as given in the DICOM attribute - * Specific Character Set (0008,0005). Leading and - * trailing spaces are removed automatically (if - * present). - * @param toCharset name of the destination character set used for - * the output string. Only a single value is - * permitted (no code extensions). Leading and - * trailing spaces are removed automatically (if - * present). The default value is "ISO_IR 192" - * (Unicode in UTF-8). - * @param transliterate mode specifying whether a character that cannot - * be represented in the destination character - * encoding is approximated through one or more - * characters that look similar to the original - * one. By default, this mode is disabled. - * @param discardIllegal mode specifying whether characters that cannot - * be represented in the destination character - * encoding will be silently discarded. By - * default, this mode is disabled. + * @param fromCharset name of the source character set(s) used for the + * input string as given in the DICOM attribute + * Specific Character Set (0008,0005). Leading and + * trailing spaces are removed automatically (if + * present). + * @param toCharset name of the destination character set used for the + * output string. Only a single value is permitted + * (no code extensions). Leading and trailing spaces + * are removed automatically (if present). The + * default value is "ISO_IR 192" (Unicode in UTF-8). * @return status, EC_Normal if successful, an error code otherwise */ OFCondition selectCharacterSet(const OFString &fromCharset, - const OFString &toCharset = "ISO_IR 192", - const OFBool transliterate = OFFalse, - const OFBool discardIllegal = OFFalse); + const OFString &toCharset = "ISO_IR 192"); /** select DICOM character sets for the input and output string, between * which subsequent calls of convertString() convert. The source @@ -151,32 +148,20 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet * code extension techniques are used and escape sequences may be * encountered in the source string to switch between the specified * character sets. - * @param dataset DICOM dataset or item from which the source - * character set should be retrieved. If the data - * element Specific Character Set (0008,0005) is - * empty or missing, the default character set - * (i.e. ASCII) is used. - * @param toCharset name of the destination character set used for - * the output string. Only a single value is - * permitted (no code extensions). Leading and - * trailing spaces are removed automatically (if - * present). The default value is "ISO_IR 192" - * (Unicode in UTF-8). - * @param transliterate mode specifying whether a character that cannot - * be represented in the destination character - * encoding is approximated through one or more - * characters that look similar to the original - * one. By default, this mode is disabled. - * @param discardIllegal mode specifying whether characters that cannot - * be represented in the destination character - * encoding will be silently discarded. By - * default, this mode is disabled. + * @param dataset DICOM dataset or item from which the source character + * set should be retrieved. If the data element + * Specific Character Set (0008,0005) is empty or + * missing, the default character set (i.e. ASCII) is + * used. + * @param toCharset name of the destination character set used for the + * the output string. Only a single value is permitted + * (no code extensions). Leading and trailing spaces + * are removed automatically (if present). The default + * value is "ISO_IR 192" (Unicode in UTF-8). * @return status, EC_Normal if successful, an error code otherwise */ OFCondition selectCharacterSet(DcmItem &dataset, - const OFString &toCharset = "ISO_IR 192", - const OFBool transliterate = OFFalse, - const OFBool discardIllegal = OFFalse); + const OFString &toCharset = "ISO_IR 192"); /** convert the given string from the selected source character set(s) to * the selected destination character set. That means selectCharacterSet() @@ -188,7 +173,7 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet * set) is stored * @param delimiters optional string of characters that are regarded as * delimiters, i.e.\ when found the character set is - * switched back to the default. CR, LF and FF are + * switched back to the default. CR, LF, FF and HT are * always regarded as delimiters (see DICOM PS 3.5). * @return status, EC_Normal if successful, an error code otherwise */ @@ -197,7 +182,7 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet const OFString &delimiters = ""); /** convert the given string from the selected source character set(s) to - * the selected destination character set. That means selectCharacterSet() + * the selected destination character set. That means selectCharacterSet() * has to be called prior to this method. Since the length of the input * string has to be specified explicitly, the string can contain more than * one NULL byte. @@ -210,7 +195,7 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet * set) is stored * @param delimiters optional string of characters that are regarded as * delimiters, i.e.\ when found the character set is - * switched back to the default. CR, LF and FF are + * switched back to the default. CR, LF, FF and HT are * always regarded as delimiters (see DICOM PS 3.5). * @return status, EC_Normal if successful, an error code otherwise */ @@ -222,12 +207,12 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet // --- static helper functions --- /** check whether the underlying character set conversion library is - * available. If the library is not available, no conversion between - * different character sets will be possible. - * @return OFTrue if the character set conversion library is available, - * OFFalse otherwise + * available. If not, no conversion between different character sets will + * be possible. + * @return OFTrue if the character set conversion is available, OFFalse + * otherwise */ - static OFBool isConversionLibraryAvailable(); + static OFBool isConversionAvailable(); /** count characters in given UTF-8 string and return the resulting number * of so-called "code points". Please note that invalid UTF-8 encodings @@ -241,13 +226,9 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet protected: - /// type definition of a map storing the identifier (key) of a character - /// set and the associated conversion descriptor - typedef OFMap T_DescriptorMap; - - /** determine the destination character encoding (as used by libiconv) from - * the given DICOM defined term (specific character set), and set the - * member variables accordingly. + /** determine the destination character encoding (as used by the underlying + * character encoding library) from the given DICOM defined term (specific + * character set), and set the member variables accordingly. * @param toCharset name of the destination character set used for the * output string * @return status, EC_Normal if successful, an error code otherwise @@ -273,11 +254,6 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet */ OFCondition selectCharacterSetWithCodeExtensions(const unsigned long sourceVM); - /** close any currently open character set conversion descriptor(s). - * Afterwards, no conversion descriptor is selected, pretty much like - * after the initialization with the constructor. - */ - void closeConversionDescriptors(); /** check whether the given string contains at least one escape character * (ESC), because it is used for code extension techniques like ISO 2022 @@ -303,6 +279,10 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet private: + /// type definition of a map storing the identifier (key) of a character + /// set and the associated character set converter + typedef OFMap T_EncodingConvertersMap; + // private undefined copy constructor DcmSpecificCharacterSet(const DcmSpecificCharacterSet &); @@ -315,15 +295,16 @@ class DCMTK_DCMDATA_EXPORT DcmSpecificCharacterSet /// selected destination character set based on a single DICOM defined term OFString DestinationCharacterSet; - /// selected destination encoding based on names supported by the libiconv toolkit + /// selected destination encoding based on names supported by the underlying + /// character encoding library OFString DestinationEncoding; /// character encoding converter - OFCharacterEncoding EncodingConverter; + OFCharacterEncoding DefaultEncodingConverter; /// map of character set conversion descriptors /// (only used if multiple character sets are needed) - T_DescriptorMap ConversionDescriptors; + T_EncodingConvertersMap EncodingConverters; }; diff --git a/dcmdata/include/dcmtk/dcmdata/dctypes.h b/dcmdata/include/dcmtk/dcmdata/dctypes.h index f5695915..2a4dd4c3 100644 --- a/dcmdata/include/dcmtk/dcmdata/dctypes.h +++ b/dcmdata/include/dcmtk/dcmdata/dctypes.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -230,6 +230,21 @@ struct DCMTK_DCMDATA_EXPORT DCMTypes static const size_t XF_useNativeModel; //@} + + /** @name convertCharacterSet() flags. + * These flags can be combined and passed to the convertCharacterSet() methods. + */ + //@{ + + /// try to approximate characters that cannot be represented through similar + /// looking characters. See DcmSpecificCharacterSet::getTransliterationMode(). + static const size_t CF_transliterate; + + /// discard characters that cannot be represented in destination character set. + /// See DcmSpecificCharacterSet::getDiscardIllegalSequenceMode(). + static const size_t CF_discardIllegal; + + //@} }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcuid.h b/dcmdata/include/dcmtk/dcmdata/dcuid.h index c8b8e00d..dd5e307c 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcuid.h +++ b/dcmdata/include/dcmtk/dcmdata/dcuid.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -39,6 +39,20 @@ * @brief global definitions and functions for UID handling */ + +/// type of Storage SOP Class +typedef enum { + /// patient objects + ESSC_Patient = 0x01, + /// non-patient objects + ESSC_NonPatient = 0x02, + /// image objects (subset of patient objects) + ESSC_Image = 0x04, + /// all types (patient and non-patient objects) + ESSC_All = 0x03 +} E_StorageSOPClassType; + + /** return the name of a UID. * Performs a table lookup and returns a pointer to a read-only string. * @param uid UID string for which the name is to be looked up @@ -57,7 +71,7 @@ DCMTK_DCMDATA_EXPORT const char* dcmFindUIDFromName(const char* name); /** an array of const strings containing all known Storage SOP Classes * that fit into the conventional PATIENT-STUDY-SERIES-INSTANCE information * model, i.e. everything a Storage SCP might want to store in a PACS. - * Special cases such as hanging protocol storage or the Storage SOP Class + * Special cases such as Hanging Protocol or Color Palette Storage SOP Class * are not included in this list. * WARNING: This list contains more than 64 entries, i.e. it is not possible * to use this list to configure the association negotiation behavior of @@ -67,7 +81,7 @@ DCMTK_DCMDATA_EXPORT const char* dcmFindUIDFromName(const char* name); extern DCMTK_DCMDATA_EXPORT const char* dcmAllStorageSOPClassUIDs[]; /// number of entries in dcmAllStorageSOPClassUIDs. -extern DCMTK_DCMDATA_EXPORT const int numberOfAllDcmStorageSOPClassUIDs; +extern DCMTK_DCMDATA_EXPORT const int numberOfDcmAllStorageSOPClassUIDs; /** an array of const strings containing all storage SOP classes that * are proposed by default by those Storage SCU components in DCMTK @@ -92,17 +106,23 @@ extern DCMTK_DCMDATA_EXPORT const char* dcmShortSCUStorageSOPClassUIDs[]; extern DCMTK_DCMDATA_EXPORT const int numberOfDcmShortSCUStorageSOPClassUIDs; /** returns true if the uid is one of the Storage SOP Classes. - * Performs a table lookup in the dcmAllStorageSOPClassUIDs table. + * Performs a table lookup in the dcmAllStorageSOPClassUIDs, dcmImageSOPClassUIDs + * and/or other tables depending on the requested type of Storage SOP Class. + * Please note that, by default, this function only covers those Storage SOP + * Classes that fit into the conventional PATIENT-STUDY-SERIES-INSTANCE + * information model, i.e. non-patient DICOM objects are missing. This can + * be changed by setting the optional type parameter to ESSC_NonPatient. * @param uid UID string + * @param type type of Storage SOP Class (default: patient objects only) * @return true if UID is a known Storage SOP Class, false otherwise */ -DCMTK_DCMDATA_EXPORT OFBool dcmIsaStorageSOPClassUID(const char* uid); +DCMTK_DCMDATA_EXPORT OFBool dcmIsaStorageSOPClassUID(const char* uid, const E_StorageSOPClassType type = ESSC_Patient); /** a global constant array of * string pointers containing the UIDs of all known Image SOP * Classes. The global variable numberOfDcmImageSOPClassUIDs * defines the size of the array. - * NOTE: this list represents a subset of the dcmStorageSOPClassUIDs list + * NOTE: this list represents a subset of the dcmAllStorageSOPClassUIDs list */ extern DCMTK_DCMDATA_EXPORT const char* dcmImageSOPClassUIDs[]; @@ -110,7 +130,7 @@ extern DCMTK_DCMDATA_EXPORT const char* dcmImageSOPClassUIDs[]; extern DCMTK_DCMDATA_EXPORT const int numberOfDcmImageSOPClassUIDs; /** returns true if the uid is one of the Image Storage SOP Classes. - * Performs a table lookup in the dcmImageSOPClassUIDs table. + * This is just a shortcut for dcmIsaStorageSOPClassUID(uid, ESSC_Image). * @param uid UID string * @return true if UID is a known Image Storage SOP Class, false otherwise */ @@ -329,9 +349,9 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_JPIPReferencedTransferSyntax "1.2.840.10008.1.2.4.94" /// JPIP Referenced Deflate #define UID_JPIPReferencedDeflateTransferSyntax "1.2.840.10008.1.2.4.95" -/// MPEG2 Main Profile @ Main Level +/// MPEG2 Main Profile @ Main Level (changed with DICOM 2016e to: MPEG2 Main Profile / Main Level) #define UID_MPEG2MainProfileAtMainLevelTransferSyntax "1.2.840.10008.1.2.4.100" -/// MPEG2 Main Profile @ High Level +/// MPEG2 Main Profile @ High Level (changed with DICOM 2016e to: MPEG2 Main Profile / High Level) #define UID_MPEG2MainProfileAtHighLevelTransferSyntax "1.2.840.10008.1.2.4.101" /// MPEG-4 AVC/H.264 High Profile / Level 4.1 #define UID_MPEG4HighProfileLevel4_1TransferSyntax "1.2.840.10008.1.2.4.102" @@ -343,6 +363,10 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax "1.2.840.10008.1.2.4.105" /// MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2 #define UID_MPEG4StereoHighProfileLevel4_2TransferSyntax "1.2.840.10008.1.2.4.106" +/// HEVC/H.265 Main Profile / Level 5.1 +#define UID_HEVCMainProfileLevel5_1TransferSyntax "1.2.840.10008.1.2.4.107" +/// HEVC/H.265 Main 10 Profile / Level 5.1 +#define UID_HEVCMain10ProfileLevel5_1TransferSyntax "1.2.840.10008.1.2.4.108" /// RLE Lossless #define UID_RLELosslessTransferSyntax "1.2.840.10008.1.2.5" @@ -479,6 +503,7 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_ColonCADSRStorage "1.2.840.10008.5.1.4.1.1.88.69" #define UID_ImplantationPlanSRDocumentStorage "1.2.840.10008.5.1.4.1.1.88.70" #define UID_AcquisitionContextSRStorage "1.2.840.10008.5.1.4.1.1.88.71" +#define UID_SimplifiedAdultEchoSRStorage "1.2.840.10008.5.1.4.1.1.88.72" #define UID_ContentAssessmentResultsStorage "1.2.840.10008.5.1.4.1.1.90.1" #define UID_EncapsulatedPDFStorage "1.2.840.10008.5.1.4.1.1.104.1" #define UID_EncapsulatedCDAStorage "1.2.840.10008.5.1.4.1.1.104.2" @@ -487,6 +512,8 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_RETIRED_StandalonePETCurveStorage "1.2.840.10008.5.1.4.1.1.129" #define UID_EnhancedPETImageStorage "1.2.840.10008.5.1.4.1.1.130" #define UID_BasicStructuredDisplayStorage "1.2.840.10008.5.1.4.1.1.131" +#define UID_CTDefinedProcedureProtocolStorage "1.2.840.10008.5.1.4.1.1.200.1" +#define UID_CTPerformedProcedureProtocolStorage "1.2.840.10008.5.1.4.1.1.200.2" #define UID_RTImageStorage "1.2.840.10008.5.1.4.1.1.481.1" #define UID_RTDoseStorage "1.2.840.10008.5.1.4.1.1.481.2" #define UID_RTStructureSetStorage "1.2.840.10008.5.1.4.1.1.481.3" @@ -592,6 +619,11 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_MOVEImplantTemplateGroupInformationModel "1.2.840.10008.5.1.4.45.3" #define UID_GETImplantTemplateGroupInformationModel "1.2.840.10008.5.1.4.45.4" +// Defined Procedure Protocol Query/Retrieve +#define UID_FINDDefinedProcedureProtocolInformationModel "1.2.840.10008.5.1.4.20.1" +#define UID_MOVEDefinedProcedureProtocolInformationModel "1.2.840.10008.5.1.4.20.2" +#define UID_GETDefinedProcedureProtocolInformationModel "1.2.840.10008.5.1.4.20.3" + // Print Management #define UID_BasicFilmSessionSOPClass "1.2.840.10008.5.1.1.1" #define UID_BasicFilmBoxSOPClass "1.2.840.10008.5.1.1.2" @@ -741,6 +773,10 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_PETColorPaletteSOPInstance "1.2.840.10008.1.5.2" #define UID_HotMetalBlueColorPaletteSOPInstance "1.2.840.10008.1.5.3" #define UID_PET20StepColorPaletteSOPInstance "1.2.840.10008.1.5.4" +#define UID_SpringColorPaletteSOPInstance "1.2.840.10008.1.5.5" +#define UID_SummerColorPaletteSOPInstance "1.2.840.10008.1.5.6" +#define UID_FallColorPaletteSOPInstance "1.2.840.10008.1.5.7" +#define UID_WinterColorPaletteSOPInstance "1.2.840.10008.1.5.8" /* ** Private DCMTK UIDs diff --git a/dcmdata/include/dcmtk/dcmdata/dcvr.h b/dcmdata/include/dcmtk/dcmdata/dcvr.h index 922c78a5..87e4c132 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvr.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvr.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -95,11 +95,10 @@ DCMTK_DCMDATA_EXPORT void dcmEnableGenerationOfNewVRs(); DCMTK_DCMDATA_EXPORT void dcmDisableGenerationOfNewVRs(); -/* -** VR Enumerations. -** NB: The order of entries has to conform to the order in DcmVRDict (see dcmvr.cc)! -** If not an error message is reported and the program aborts (only in DEBUG mode). -*/ +/** VR Enumerations. + * NB: The order of entries has to conform to the order in DcmVRDict (see dcmvr.cc)! + * If not an error message is reported and the program aborts (only in DEBUG mode). + */ enum DcmEVR { /// application entity title @@ -304,6 +303,7 @@ public: /** copy assignment operator * @param arg vr to assign from + * @return reference to this object */ DcmVR& operator=(const DcmVR& arg) { @@ -346,36 +346,39 @@ public: const char* getValidVRName() const; /** compute the size for non-empty values of this VR. - * For fixed size VRs such as OW, US, SL, the method returns the size - * of each value, in bytes. For variable length VRs (strings), it returns 1. + * For fixed size VRs such as OW, US, SL, the method returns the size of + * each value, in bytes. For variable length VRs (strings), it returns 1. * For internal VRs it returns 0. * @return size of values of this VR */ size_t getValueWidth() const; /** returns true if VR is a standard DICOM VR - * @return true if VR is a standard DICOM VR + * @return true if VR is a standard DICOM VR, false otherwise */ OFBool isStandard() const; /** returns true if VR is for internal use only - * @return true if VR is for internal use only + * @return true if VR is for internal use only, false otherwise */ OFBool isForInternalUseOnly() const; /** returns true if VR represents a string - * @return true if VR represents a string + * @return true if VR represents a string, false otherwise */ OFBool isaString() const; - /** returns true if VR uses an extended length encoding for explicit transfer syntaxes - * @return true if VR uses an extended length encoding for explicit transfer syntaxes + /** returns true if VR uses an extended length encoding for explicit + * transfer syntaxes + * @return true if VR uses an extended length encoding for explicit + * transfer syntaxes, false otherwise */ OFBool usesExtendedLengthEncoding() const; /** check if VRs are equivalent - * VRs are considered equivalent if equal or if one of them is an internal VR - * and the other one is a possible standard VR to which the internal one maps. + * VRs are considered equivalent if equal or if one of them is an internal + * VR and the other one is a possible standard VR to which the internal one + * maps. * @param avr VR to compare with * @return true if VRs are equivalent, false otherwise */ @@ -385,16 +388,32 @@ public: ** (in bytes assuming single byte characters) */ - /** return minimum length of a value with this VR (in bytes), assuming single byte characters + /** return minimum length of a value with this VR (in bytes), assuming + * single byte characters * @return minimum length of a value */ Uint32 getMinValueLength() const; - /** return maximum length of a value with this VR (in bytes), assuming single byte characters + /** return maximum length of a value with this VR (in bytes), assuming + * single byte characters * @return maximum length of a value */ Uint32 getMaxValueLength() const; + /** return whether elements of this VR are affected by SpecificCharacterSet + * @return true for the following VRs: PN, LO, LT, SH, ST, UC and UT, + * false for all others. + */ + OFBool isAffectedBySpecificCharacterSet() const; + + /** retrieve delimiter characters to be used for character set conversion + * (to switch back to the default character set in case code extension + * techniques like ISO 2022 are used). + * @return a reference to an OFString containing the delimiter characters + * for this VR or a reference to an empty OFString. + */ + const OFString& getDelimiterChars() const; + private: /// the enumerated VR value DcmEVR vr; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrat.h b/dcmdata/include/dcmtk/dcmdata/dcvrat.h index b07ecc52..b92d6a22 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrat.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrat.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2013, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -27,6 +27,9 @@ #include "dcmtk/dcmdata/dcelem.h" +// forward declarations +class DcmJsonFormat; + /** a class representing the DICOM value representation 'Attribute Tag' (AT) */ @@ -36,13 +39,16 @@ class DCMTK_DCMDATA_EXPORT DcmAttributeTag public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element * @param len value length for the new element */ - DcmAttributeTag(const DcmTag &tag, - const Uint32 len = 0); + DcmAttributeTag(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -142,6 +148,14 @@ class DCMTK_DCMDATA_EXPORT DcmAttributeTag OFCondition writeXML(STD_NAMESPACE ostream &out, const size_t flags = 0); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + /** get particular tag value * @param tagVal reference to result variable (cleared in case of error) * @param pos index of the value to be retrieved (0..vm-1) @@ -231,6 +245,22 @@ class DCMTK_DCMDATA_EXPORT DcmAttributeTag */ static OFCondition checkStringValue(const OFString &value, const OFString &vm = "1-n"); + +protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * Create new element from given tag and length. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmAttributeTag(const DcmTag &tag, + const Uint32 len); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrda.h b/dcmdata/include/dcmtk/dcmdata/dcvrda.h index 928bb57e..ed75bdaf 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrda.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrda.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -172,15 +172,59 @@ class DCMTK_DCMDATA_EXPORT DcmDate * Please note that the specified value is expected to be in valid DICOM DA format * ("YYYYMMDD", "YYYY.MM.DD" is also supported for reasons of backward compatibility). * If this function fails, the result variable 'dateValue' is cleared automatically. - * @param dicomDate string value in DICOM DA format to be converted to ISO format. + * @param dicomDate string value in DICOM DA format to be converted to OFDate format. * An empty string is not regarded as valid input, since the date would be unknown. * @param dateValue reference to OFDate variable where the result is stored - * @param supportOldFormat if OFTrue support old (prior V3.0) date format (see above) * @return EC_Normal upon success, an error code otherwise */ static OFCondition getOFDateFromString(const OFString &dicomDate, + OFDate &dateValue); + + /** get the specified DICOM date value in OFDate format. + * Please note that the specified value is expected to be in valid DICOM DA format + * ("YYYYMMDD", "YYYY.MM.DD" is also supported for reasons of backward compatibility). + * If this function fails, the result variable 'dateValue' is cleared automatically. + * @param dicomDate string value in DICOM DA format to be converted to OFDate format. + * An empty string is not regarded as valid input, since the date would be unknown. + * @param dateValue reference to OFDate variable where the result is stored + * @param supportOldFormat set to OFFalse to disable support for old (prior V3.0) date + * format (see above). + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFDateFromString(const OFString &dicomDate, + OFDate &dateValue, + const OFBool supportOldFormat); + + /** get the specified DICOM date value in OFDate format. + * Please note that the specified value is expected to be in valid DICOM DA format + * ("YYYYMMDD", "YYYY.MM.DD" is also supported for reasons of backward compatibility). + * If this function fails, the result variable 'dateValue' is cleared automatically. + * @param dicomDate string value in DICOM DA format to be converted to OFDate format. + * An empty string is not regarded as valid input, since the date would be unknown. + * @param dicomDateSize the size (in bytes) of the string 'dicomDate' refers to + * @param dateValue reference to OFDate variable where the result is stored + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFDateFromString(const char *dicomDate, + const size_t dicomDateSize, + OFDate &dateValue); + + /** get the specified DICOM date value in OFDate format. + * Please note that the specified value is expected to be in valid DICOM DA format + * ("YYYYMMDD", "YYYY.MM.DD" is also supported for reasons of backward compatibility). + * If this function fails, the result variable 'dateValue' is cleared automatically. + * @param dicomDate string value in DICOM DA format to be converted to OFDate format. + * An empty string is not regarded as valid input, since the date would be unknown. + * @param dicomDateSize the size (in bytes) of the string 'dicomDate' refers to + * @param dateValue reference to OFDate variable where the result is stored + * @param supportOldFormat set to OFFalse to disable support for old (prior V3.0) date + * format (see above). + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFDateFromString(const char *dicomDate, + const size_t dicomDateSize, OFDate &dateValue, - const OFBool supportOldFormat = OFTrue); + const OFBool supportOldFormat); /** get the specified DICOM date value in ISO format. * The ISO date format supported by this function is "YYYY-MM-DD". Please note diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrds.h b/dcmdata/include/dcmtk/dcmdata/dcvrds.h index 211e767d..f7ea5006 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrds.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrds.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2013, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -28,6 +28,9 @@ #include "dcmtk/ofstd/ofvector.h" #include "dcmtk/dcmdata/dcbytstr.h" +// forward declarations +class DcmJsonFormat; + /** a class representing the DICOM value representation 'Decimal String' (DS) */ @@ -133,6 +136,14 @@ class DCMTK_DCMDATA_EXPORT DcmDecimalString virtual OFCondition writeXML(STD_NAMESPACE ostream &out, const size_t flags = 0); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + /* --- static helper functions --- */ /** check whether given string value conforms to the VR "DS" (Decimal String) diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrdt.h b/dcmdata/include/dcmtk/dcmdata/dcvrdt.h index a6522818..b900d6b6 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrdt.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrdt.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -214,10 +214,12 @@ class DCMTK_DCMDATA_EXPORT DcmDateTime /** get the specified DICOM date and time value in OFDateTime format. * Please note that the element value is expected to be in valid DICOM DT format - * ("YYYYMMDD[HH[MM[SS[.FFFFFF]]]][&ZZZZ]"). If the optional time zone ("&ZZZZ") is - * missing the local time zone is used. + * ("YYYY[MM[DD[HH[MM[SS[.FFFFFF]]]]]][&ZZZZ]"). If the "MM" and/or "DD" component from + * the date part is missing, a value of "1" is used for each of them. If the "HH", "MM" + * and/or "SS" component of the time part is missing, a value of "0" is used for each of + * them. If the optional time zone ("&ZZZZ") is missing, the local time zone is used. * If this function fails, the result variable 'dateTimeValue' is cleared automatically. - * @param dicomDateTime string value in DICOM DT format to be converted to ISO format. + * @param dicomDateTime string value in DICOM DT format to be converted to OFDateTime. * An empty string is not regarded as valid input, since the date/time would be unknown. * @param dateTimeValue reference to OFDateTime variable where the result is stored * @return EC_Normal upon success, an error code otherwise @@ -225,6 +227,23 @@ class DCMTK_DCMDATA_EXPORT DcmDateTime static OFCondition getOFDateTimeFromString(const OFString &dicomDateTime, OFDateTime &dateTimeValue); + /** get the specified DICOM date and time value in OFDateTime format. + * Please note that the element value is expected to be in valid DICOM DT format + * ("YYYY[MM[DD[HH[MM[SS[.FFFFFF]]]]]][&ZZZZ]"). If the "MM" and/or "DD" component from + * the date part is missing, a value of "1" is used for each of them. If the "HH", "MM" + * and/or "SS" component of the time part is missing, a value of "0" is used for each of + * them. If the optional time zone ("&ZZZZ") is missing, the local time zone is used. + * If this function fails, the result variable 'dateTimeValue' is cleared automatically. + * @param dicomDateTime string value in DICOM DT format to be converted to OFDateTime. + * An empty string is not regarded as valid input, since the date/time would be unknown. + * @param dicomDateTimeSize the size (in bytes) of the string 'dicomDateTime' refers to + * @param dateTimeValue reference to OFDateTime variable where the result is stored + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFDateTimeFromString(const char *dicomDateTime, + const size_t dicomDateTimeSize, + OFDateTime &dateTimeValue); + /** get the specified DICOM datetime value in ISO format. * The ISO date/time format supported by this function is "YYYY-MM-DD[ HH:MM[:SS[.FFFFFF]]] * [&HH:MM]" where the brackets enclose optional parts. Please note that the specified diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrfd.h b/dcmdata/include/dcmtk/dcmdata/dcvrfd.h index 51bceacc..bde2163b 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrfd.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrfd.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,18 +36,20 @@ class DCMTK_DCMDATA_EXPORT DcmFloatingPointDouble public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmFloatingPointDouble(const DcmTag &tag, - const Uint32 len = 0); + DcmFloatingPointDouble(const DcmTag &tag); /** copy constructor * @param old element to be copied */ - DcmFloatingPointDouble( const DcmFloatingPointDouble &old); + DcmFloatingPointDouble(const DcmFloatingPointDouble &old); /** destructor */ @@ -202,6 +204,22 @@ class DCMTK_DCMDATA_EXPORT DcmFloatingPointDouble * @return status, EC_Normal if value length is correct, an error code otherwise */ virtual OFCondition verify(const OFBool autocorrect = OFFalse); + + protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * Create new element from given tag and length. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmFloatingPointDouble(const DcmTag &tag, + const Uint32 len); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrfl.h b/dcmdata/include/dcmtk/dcmdata/dcvrfl.h index 74a67de9..cf2d870b 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrfl.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrfl.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,13 +36,15 @@ class DCMTK_DCMDATA_EXPORT DcmFloatingPointSingle public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmFloatingPointSingle(const DcmTag &tag, - const Uint32 len = 0); + DcmFloatingPointSingle(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -202,6 +204,23 @@ class DCMTK_DCMDATA_EXPORT DcmFloatingPointSingle * @return status, EC_Normal if value length is correct, an error code otherwise */ virtual OFCondition verify(const OFBool autocorrect = OFFalse); + + protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * Create new element from given tag and length. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmFloatingPointSingle(const DcmTag &tag, + const Uint32 len); + }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvris.h b/dcmdata/include/dcmtk/dcmdata/dcvris.h index 3b1c66f8..b0b38469 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvris.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvris.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2013, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -27,6 +27,10 @@ #include "dcmtk/dcmdata/dcbytstr.h" +// forward declarations +class DcmJsonFormat; + + /** a class representing the DICOM value representation 'Integer String' (IS) */ class DCMTK_DCMDATA_EXPORT DcmIntegerString @@ -123,6 +127,14 @@ class DCMTK_DCMDATA_EXPORT DcmIntegerString */ static OFCondition checkStringValue(const OFString &value, const OFString &vm = "1-n"); + + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrlo.h b/dcmdata/include/dcmtk/dcmdata/dcvrlo.h index 47eeebb1..08341828 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrlo.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrlo.h @@ -27,6 +27,9 @@ #include "dcmtk/dcmdata/dcchrstr.h" +// forward declarations +class DcmJsonFormat; + /** a class representing the DICOM value representation 'Long String' (LO) */ @@ -105,6 +108,15 @@ class DCMTK_DCMDATA_EXPORT DcmLongString const unsigned long pos, OFBool normalize = OFTrue); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + + /* --- static helper functions --- */ /** check whether given string value conforms to the VR "LO" (Long String) @@ -121,6 +133,12 @@ class DCMTK_DCMDATA_EXPORT DcmLongString static OFCondition checkStringValue(const OFString &value, const OFString &vm = "1-n", const OFString &charset = ""); + +protected: + + /** @copydoc DcmCharString::getDelimiterChars() + */ + virtual const OFString& getDelimiterChars() const; }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrobow.h b/dcmdata/include/dcmtk/dcmdata/dcvrobow.h index 8a1c0fad..26e354ac 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrobow.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrobow.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -24,9 +24,14 @@ #define DCVROBOW_H #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + #include "dcmtk/dcmdata/dcelem.h" +// forward declarations +class DcmJsonFormat; + + /** a class representing the DICOM value representations 'Other Byte' (OB) * and 'Other Word' (OW) */ @@ -36,13 +41,15 @@ class DCMTK_DCMDATA_EXPORT DcmOtherByteOtherWord public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmOtherByteOtherWord(const DcmTag &tag, - const Uint32 len = 0); + DcmOtherByteOtherWord(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -168,6 +175,14 @@ class DCMTK_DCMDATA_EXPORT DcmOtherByteOtherWord virtual OFCondition writeXML(STD_NAMESPACE ostream&out, const size_t flags = 0); + /** write object in JSON format to a stream + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream&out, + DcmJsonFormat &format); + /** special write method for creation of digital signatures * @param outStream DICOM output stream * @param oxfer output transfer syntax @@ -308,6 +323,20 @@ class DCMTK_DCMDATA_EXPORT DcmOtherByteOtherWord protected: + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * Create new element from given tag and length. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmOtherByteOtherWord(const DcmTag &tag, + const Uint32 len); + /** method is called after the element value has been loaded. * Can be used to correct the value before it is used for the first time. */ diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrod.h b/dcmdata/include/dcmtk/dcmdata/dcvrod.h index eaa363ed..5b35efd7 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrod.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrod.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2013-2015, OFFIS e.V. + * Copyright (C) 2013-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -28,6 +28,10 @@ #include "dcmtk/dcmdata/dcvrfd.h" +// forward declarations +class DcmJsonFormat; + + /** a class representing the DICOM value representation 'Other Double' (OD) */ class DCMTK_DCMDATA_EXPORT DcmOtherDouble @@ -106,6 +110,14 @@ class DCMTK_DCMDATA_EXPORT DcmOtherDouble */ virtual OFCondition writeXML(STD_NAMESPACE ostream&out, const size_t flags = 0); + + /** write object in JSON format to a stream + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream&out, + DcmJsonFormat &format); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrof.h b/dcmdata/include/dcmtk/dcmdata/dcvrof.h index bd228fc5..eca29dcc 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrof.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrof.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2002-2015, OFFIS e.V. + * Copyright (C) 2002-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -28,6 +28,10 @@ #include "dcmtk/dcmdata/dcvrfl.h" +// forward declarations +class DcmJsonFormat; + + /** a class representing the DICOM value representation 'Other Float' (OF) */ class DCMTK_DCMDATA_EXPORT DcmOtherFloat @@ -106,6 +110,14 @@ class DCMTK_DCMDATA_EXPORT DcmOtherFloat */ virtual OFCondition writeXML(STD_NAMESPACE ostream&out, const size_t flags = 0); + + /** write object in JSON format to a stream + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream&out, + DcmJsonFormat &format); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrol.h b/dcmdata/include/dcmtk/dcmdata/dcvrol.h index 747bfebb..c7fc6274 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrol.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrol.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2016, OFFIS e.V. + * Copyright (C) 2016-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -28,6 +28,10 @@ #include "dcmtk/dcmdata/dcvrul.h" +// forward declarations +class DcmJsonFormat; + + /** a class representing the DICOM value representation 'Other Long' (OL) */ class DCMTK_DCMDATA_EXPORT DcmOtherLong @@ -36,13 +40,15 @@ class DCMTK_DCMDATA_EXPORT DcmOtherLong public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. * Create new element from given tag and length. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmOtherLong(const DcmTag &tag, - const Uint32 len = 0); + DcmOtherLong(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -106,6 +112,30 @@ class DCMTK_DCMDATA_EXPORT DcmOtherLong */ virtual OFCondition writeXML(STD_NAMESPACE ostream&out, const size_t flags = 0); + + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + + protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmOtherLong(const DcmTag &tag, + const Uint32 len); + }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrpn.h b/dcmdata/include/dcmtk/dcmdata/dcvrpn.h index d485489c..4264691f 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrpn.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrpn.h @@ -27,6 +27,9 @@ #include "dcmtk/dcmdata/dcchrstr.h" +// forward declarations +class DcmJsonFormat; + /** a class representing the DICOM value representation 'Person Name' (PN) */ @@ -173,6 +176,14 @@ class DCMTK_DCMDATA_EXPORT DcmPersonName OFCondition writeXML(STD_NAMESPACE ostream &out, const size_t flags = 0); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + /* --- static helper functions --- */ /** get name components from specified DICOM person name. @@ -289,6 +300,18 @@ class DCMTK_DCMDATA_EXPORT DcmPersonName static OFCondition checkStringValue(const OFString &value, const OFString &vm = "1-n", const OFString &charset = ""); + +protected: + + /** @copydoc DcmCharString::getDelimiterChars() + */ + virtual const OFString& getDelimiterChars() const; + +private: + + /** an array containing the component group names, for XML and JSON output. + */ + static const char* const componentGroupNames[3]; }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrpobw.h b/dcmdata/include/dcmtk/dcmdata/dcvrpobw.h index 503c7e4c..3768c896 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrpobw.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrpobw.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -52,9 +52,9 @@ public: /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ - DcmPolymorphOBOW &operator=( - const DcmPolymorphOBOW &obj); + DcmPolymorphOBOW &operator=(const DcmPolymorphOBOW &obj); /** clone method * @return deep copy of this object diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrsh.h b/dcmdata/include/dcmtk/dcmdata/dcvrsh.h index 98bbb313..d365ac94 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrsh.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrsh.h @@ -28,6 +28,10 @@ #include "dcmtk/dcmdata/dcchrstr.h" +// forward declarations +class DcmJsonFormat; + + /** a class representing the DICOM value representation 'Short String' (SH) */ class DCMTK_DCMDATA_EXPORT DcmShortString @@ -105,6 +109,14 @@ class DCMTK_DCMDATA_EXPORT DcmShortString const unsigned long pos, OFBool normalize = OFTrue); + /** write object in JSON format + * @param out output stream to which the JSON document is written + * @param format used to format and customize the output + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format); + /* --- static helper functions --- */ /** check whether given string value conforms to the VR "SH" (Short String) @@ -121,6 +133,12 @@ class DCMTK_DCMDATA_EXPORT DcmShortString static OFCondition checkStringValue(const OFString &value, const OFString &vm = "1-n", const OFString &charset = ""); + +protected: + + /** @copydoc DcmCharString::getDelimiterChars() + */ + virtual const OFString& getDelimiterChars() const; }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrsl.h b/dcmdata/include/dcmtk/dcmdata/dcvrsl.h index 1e102749..0d98493d 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrsl.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrsl.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,13 +36,15 @@ class DCMTK_DCMDATA_EXPORT DcmSignedLong public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmSignedLong(const DcmTag &tag, - const Uint32 len = 0); + DcmSignedLong(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -199,6 +201,21 @@ class DCMTK_DCMDATA_EXPORT DcmSignedLong * @return status, EC_Normal if value length is correct, an error code otherwise */ virtual OFCondition verify(const OFBool autocorrect = OFFalse); + + protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmSignedLong(const DcmTag &tag, + const Uint32 len); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrss.h b/dcmdata/include/dcmtk/dcmdata/dcvrss.h index 859446a1..47d94aa3 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrss.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrss.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,13 +36,15 @@ class DCMTK_DCMDATA_EXPORT DcmSignedShort public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmSignedShort(const DcmTag &tag, - const Uint32 len = 0); + DcmSignedShort(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -199,6 +201,21 @@ class DCMTK_DCMDATA_EXPORT DcmSignedShort * @return status, EC_Normal if value length is correct, an error code otherwise */ virtual OFCondition verify(const OFBool autocorrect = OFFalse); + + protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmSignedShort(const DcmTag &tag, + const Uint32 len); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrtm.h b/dcmdata/include/dcmtk/dcmdata/dcvrtm.h index cb62fd4f..0b724739 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrtm.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrtm.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -203,19 +203,109 @@ class DCMTK_DCMDATA_EXPORT DcmTime /** get the specified DICOM time value in OFTime format. * Please note that the element value is expected to be in valid DICOM TM format - * ("[HH[MM[SS[.FFFFFF]]]]", "[HH[:MM[:SS[.FFFFFF]]]]" is also supported for reasons + * ("HH[MM[SS[.FFFFFF]]]", "HH[:MM[:SS[.FFFFFF]]]" is also supported for reasons * of backward compatibility). Since there is no time zone for the DICOM TM format * local time is assumed (the time zone of 'timeValue' is set automatically). * If this function fails the result variable 'timeValue' is cleared automatically. - * @param dicomTime string value in DICOM TM format to be converted to ISO format. + * @param dicomTime string value in DICOM TM format to be converted to OFTime format. * An empty string is not regarded as valid input, since the time would be unknown. * @param timeValue reference to OFTime variable where the result is stored - * @param supportOldFormat if OFTrue support old (prior V3.0) time format (see above) + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFTimeFromString(const OFString &dicomTime, + OFTime &timeValue); + + /** get the specified DICOM time value in OFTime format. + * Please note that the element value is expected to be in valid DICOM TM format + * ("HH[MM[SS[.FFFFFF]]]", "HH[:MM[:SS[.FFFFFF]]]" is also supported for reasons + * of backward compatibility). Since there is no time zone for the DICOM TM format + * local time is assumed (the time zone of 'timeValue' is set automatically). + * If this function fails the result variable 'timeValue' is cleared automatically. + * @param dicomTime string value in DICOM TM format to be converted to OFTime format. + * An empty string is not regarded as valid input, since the time would be unknown. + * @param timeValue reference to OFTime variable where the result is stored + * @param supportOldFormat set to OFFalse to disable support for old (prior V3.0) time + * format (see above). + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFTimeFromString(const OFString &dicomTime, + OFTime &timeValue, + const OFBool supportOldFormat); + + /** get the specified DICOM time value in OFTime format. + * Please note that the element value is expected to be in valid DICOM TM format + * ("HH[MM[SS[.FFFFFF]]]", "HH[:MM[:SS[.FFFFFF]]]" is also supported for reasons of + * backward compatibility). This overload of the function will set the time zone of + * 'timeValue' to the value given via the 'timeZone' parameter. + * If this function fails the result variable 'timeValue' is cleared automatically. + * @param dicomTime string value in DICOM TM format to be converted to OFTime format. + * An empty string is not regarded as valid input, since the time would be unknown. + * @param timeValue reference to OFTime variable where the result is stored + * @param supportOldFormat set to OFFalse to disable support for old (prior V3.0) time + * format (see above). + * @param timeZone the time zone to set for 'timeValue'. * @return EC_Normal upon success, an error code otherwise */ static OFCondition getOFTimeFromString(const OFString &dicomTime, OFTime &timeValue, - const OFBool supportOldFormat = OFTrue); + const OFBool supportOldFormat, + const double timeZone); + + /** get the specified DICOM time value in OFTime format. + * Please note that the element value is expected to be in valid DICOM TM format + * ("HH[MM[SS[.FFFFFF]]]", "HH[:MM[:SS[.FFFFFF]]]" is also supported for reasons + * of backward compatibility). Since there is no time zone for the DICOM TM format + * local time is assumed (the time zone of 'timeValue' is set automatically). + * If this function fails the result variable 'timeValue' is cleared automatically. + * @param dicomTime string value in DICOM TM format to be converted to OFTime format. + * An empty string is not regarded as valid input, since the time would be unknown. + * @param dicomTimeSize the size (in bytes) of the string 'dicomTime' refers to + * @param timeValue reference to OFTime variable where the result is stored + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFTimeFromString(const char *dicomTime, + const size_t dicomTimeSize, + OFTime &timeValue); + + /** get the specified DICOM time value in OFTime format. + * Please note that the element value is expected to be in valid DICOM TM format + * ("HH[MM[SS[.FFFFFF]]]", "HH[:MM[:SS[.FFFFFF]]]" is also supported for reasons + * of backward compatibility). Since there is no time zone for the DICOM TM format + * local time is assumed (the time zone of 'timeValue' is set automatically). + * If this function fails the result variable 'timeValue' is cleared automatically. + * @param dicomTime string value in DICOM TM format to be converted to OFTime format. + * An empty string is not regarded as valid input, since the time would be unknown. + * @param dicomTimeSize the size (in bytes) of the string 'dicomTime' refers to + * @param timeValue reference to OFTime variable where the result is stored + * @param supportOldFormat set to OFFalse to disable support for old (prior V3.0) time + * format (see above). + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFTimeFromString(const char *dicomTime, + const size_t dicomTimeSize, + OFTime &timeValue, + const OFBool supportOldFormat); + + /** get the specified DICOM time value in OFTime format. + * Please note that the element value is expected to be in valid DICOM TM format + * ("HH[MM[SS[.FFFFFF]]]", "HH[:MM[:SS[.FFFFFF]]]" is also supported for reasons of + * backward compatibility). This overload of the function will set the time zone of + * 'timeValue' to the value given via the 'timeZone' parameter. + * If this function fails the result variable 'timeValue' is cleared automatically. + * @param dicomTime string value in DICOM TM format to be converted to OFTime format. + * An empty string is not regarded as valid input, since the time would be unknown. + * @param dicomTimeSize the size (in bytes) of the string 'dicomTime' refers to + * @param timeValue reference to OFTime variable where the result is stored + * @param supportOldFormat set to OFFalse to disable support for old (prior V3.0) time + * format (see above). + * @param timeZone the time zone to set for 'timeValue'. + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getOFTimeFromString(const char *dicomTime, + const size_t dicomTimeSize, + OFTime &timeValue, + const OFBool supportOldFormat, + const double timeZone); /** get the specified DICOM time value in ISO format. * The ISO time format supported by this function is "HH:MM[:SS[.FFFFFF]]" where the @@ -231,7 +321,8 @@ class DCMTK_DCMDATA_EXPORT DcmTime * (requires parameter 'seconds' to be also OFTrue) * @param createMissingPart if OFTrue create optional parts (seconds and/or fractional * part of a seconds) if absent in the DICOM TM value - * @param supportOldFormat if OFTrue support old (prior V3.0) time format (see above) + * @param supportOldFormat set to OFFalse to disable support for old (prior V3.0) time + * format (see above). * @return EC_Normal upon success, an error code otherwise */ static OFCondition getISOFormattedTimeFromString(const OFString &dicomTime, @@ -256,6 +347,23 @@ class DCMTK_DCMDATA_EXPORT DcmTime static OFCondition getTimeZoneFromString(const OFString &dicomTimeZone, double &timeZone); + /** get the specified DICOM time zone in number of hours format + * DICOM standard states that if the "Timezone Offset From UTC" attribute (0008,0201) is + * present it applies to all TM attributes in the object. This functions allows to convert + * the DICOM format ("&ZZZZ" where "&" is "+" or "-" and "ZZZZ" hours and minutes) to a + * floating point value, e.g. "+1.0" means plus one hour and "-2.5" minus two and a half + * hour, i.e. 2 hours and 30 minutes. + * The resulting 'timeZone' value can be used in conjuction with a OFTime object to convert + * the time to different time zones (e.g. to local time or UTC). + * @param dicomTimeZone string value in DICOM format ("&ZZZZ") to be converted + * @param timeZone reference to floating point variable where the resulting UTC offset is stored + * @param dicomTimeZoneSize the size (in bytes) of the string 'dicomTimeZone' refers to + * @return EC_Normal upon success, an error code otherwise + */ + static OFCondition getTimeZoneFromString(const char *dicomTimeZone, + const size_t dicomTimeZoneSize, + double &timeZone); + /** check whether given string value conforms to the VR "TM" (Time) * and to the specified VM. * @param value string value to be checked (possibly multi-valued) @@ -267,6 +375,16 @@ class DCMTK_DCMDATA_EXPORT DcmTime static OFCondition checkStringValue(const OFString &value, const OFString &vm = "1-n", const OFBool oldFormat = OFFalse); + +private: + + /** parse the fragment part of a DICOM time string. + * @param string a pointer to the beginning of the fragment portion of a DICOM time string. + * @param size the size (in bytes) of the given string value. + * @param result a reference to a double value that will receive the result. + * @return OFTrue if the fragment was parsed successfully, OFFalse otherwise. + */ + static OFBool parseFragment(const char* string, const size_t size, double& result); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvruc.h b/dcmdata/include/dcmtk/dcmdata/dcvruc.h index 60bbde73..3833240c 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvruc.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvruc.h @@ -55,6 +55,7 @@ class DCMTK_DCMDATA_EXPORT DcmUnlimitedCharacters /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ DcmUnlimitedCharacters &operator=(const DcmUnlimitedCharacters &obj); diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrul.h b/dcmdata/include/dcmtk/dcmdata/dcvrul.h index be292d0a..fa61c243 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrul.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrul.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,13 +36,15 @@ class DCMTK_DCMDATA_EXPORT DcmUnsignedLong public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmUnsignedLong(const DcmTag &tag, - const Uint32 len = 0); + DcmUnsignedLong(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -199,6 +201,22 @@ class DCMTK_DCMDATA_EXPORT DcmUnsignedLong * @return status, EC_Normal if value length is correct, an error code otherwise */ virtual OFCondition verify(const OFBool autocorrect = OFFalse); + + protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmUnsignedLong(const DcmTag &tag, + const Uint32 len); + }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrulup.h b/dcmdata/include/dcmtk/dcmdata/dcvrulup.h index 8d0f3d5b..1c235de2 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrulup.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrulup.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -27,6 +27,8 @@ #include "dcmtk/dcmdata/dcvrul.h" +class DcmDirectoryRecord; +class DcmItem; /** a class used for DICOMDIR byte offsets */ @@ -36,13 +38,17 @@ class DCMTK_DCMDATA_EXPORT DcmUnsignedLongOffset public: + // Make friend with DcmDirectoryRecord and DcmItem which require access + // to protected constructor allowing construction using an explicit + // value length. + friend class DcmDirectoryRecord; + friend class DcmItem; + /** constructor. * Create new element from given tag and length. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmUnsignedLongOffset(const DcmTag &tag, - const Uint32 len = 0); + DcmUnsignedLongOffset(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -55,6 +61,7 @@ class DCMTK_DCMDATA_EXPORT DcmUnsignedLongOffset /** assignment operator. * @param obj the offset to be copied + * @return reference to this object */ DcmUnsignedLongOffset &operator=(const DcmUnsignedLongOffset &obj); @@ -109,6 +116,19 @@ class DCMTK_DCMDATA_EXPORT DcmUnsignedLongOffset private: + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmUnsignedLongOffset(const DcmTag &tag, + const Uint32 len); + /// pointer to the referenced object. NULL means that no object is referenced. DcmObject *nextRecord; }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrur.h b/dcmdata/include/dcmtk/dcmdata/dcvrur.h index 95aed31e..c1913ade 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrur.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrur.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2014, OFFIS e.V. + * Copyright (C) 2014-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -56,6 +56,7 @@ class DCMTK_DCMDATA_EXPORT DcmUniversalResourceIdentifierOrLocator /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ DcmUniversalResourceIdentifierOrLocator &operator=(const DcmUniversalResourceIdentifierOrLocator &obj); diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrus.h b/dcmdata/include/dcmtk/dcmdata/dcvrus.h index a4853949..5daebe5a 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrus.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrus.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,13 +36,15 @@ class DCMTK_DCMDATA_EXPORT DcmUnsignedShort public: + // Make friend with DcmItem which requires access to protected + // constructor allowing construction using an explicit value length. + friend class DcmItem; + /** constructor. - * Create new element from given tag and length. + * Create new element from given tag. * @param tag DICOM tag for the new element - * @param len value length for the new element */ - DcmUnsignedShort(const DcmTag &tag, - const Uint32 len = 0); + DcmUnsignedShort(const DcmTag &tag); /** copy constructor * @param old element to be copied @@ -199,6 +201,21 @@ class DCMTK_DCMDATA_EXPORT DcmUnsignedShort * @return status, EC_Normal if value length is correct, an error code otherwise */ virtual OFCondition verify(const OFBool autocorrect = OFFalse); + + protected: + + /** constructor. Create new element from given tag and length. + * Only reachable from friend classes since construction with + * length different from 0 leads to a state with length being set but + * the element's value still being uninitialized. This can lead to crashes + * when the value is read or written. Thus the method calling this + * constructor with length > 0 must ensure that the element's value is + * explicitly initialized, too. + * @param tag DICOM tag for the new element + * @param len value length for the new element + */ + DcmUnsignedShort(const DcmTag &tag, + const Uint32 len); }; diff --git a/dcmdata/include/dcmtk/dcmdata/dcvrut.h b/dcmdata/include/dcmtk/dcmdata/dcvrut.h index 56f370fc..68363713 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcvrut.h +++ b/dcmdata/include/dcmtk/dcmdata/dcvrut.h @@ -55,6 +55,7 @@ class DCMTK_DCMDATA_EXPORT DcmUnlimitedText /** copy assignment operator * @param obj element to be copied + * @return reference to this object */ DcmUnlimitedText &operator=(const DcmUnlimitedText &obj); diff --git a/dcmdata/include/dcmtk/dcmdata/dcxfer.h b/dcmdata/include/dcmtk/dcmdata/dcxfer.h index c1ea9070..486ea59d 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcxfer.h +++ b/dcmdata/include/dcmtk/dcmdata/dcxfer.h @@ -83,38 +83,42 @@ typedef enum { EXS_JPEGProcess14SV1 = 21, /// Run Length Encoding (lossless) EXS_RLELossless = 22, + /// Deflated Explicit VR Little Endian + EXS_DeflatedLittleEndianExplicit = 23, /// JPEG-LS (lossless) - EXS_JPEGLSLossless = 23, + EXS_JPEGLSLossless = 24, /// JPEG-LS (lossless or near-lossless mode) - EXS_JPEGLSLossy = 24, - /// Deflated Explicit VR Little Endian - EXS_DeflatedLittleEndianExplicit = 25, + EXS_JPEGLSLossy = 25, /// JPEG 2000 (lossless) EXS_JPEG2000LosslessOnly = 26, /// JPEG 2000 (lossless or lossy) EXS_JPEG2000 = 27, + /// JPEG 2000 part 2 multi-component extensions (lossless) + EXS_JPEG2000MulticomponentLosslessOnly = 28, + /// JPEG 2000 part 2 multi-component extensions (lossless or lossy) + EXS_JPEG2000Multicomponent = 29, + /// JPIP Referenced + EXS_JPIPReferenced = 30, + /// JPIP Referenced Deflate + EXS_JPIPReferencedDeflate = 31, /// MPEG2 Main Profile at Main Level - EXS_MPEG2MainProfileAtMainLevel = 28, + EXS_MPEG2MainProfileAtMainLevel = 32, /// MPEG2 Main Profile at High Level - EXS_MPEG2MainProfileAtHighLevel = 29, + EXS_MPEG2MainProfileAtHighLevel = 33, /// MPEG4 High Profile / Level 4.1 - EXS_MPEG4HighProfileLevel4_1 = 30, + EXS_MPEG4HighProfileLevel4_1 = 34, /// MPEG4 BD-compatible High Profile / Level 4.1 - EXS_MPEG4BDcompatibleHighProfileLevel4_1 = 31, + EXS_MPEG4BDcompatibleHighProfileLevel4_1 = 35, /// MPEG4 High Profile / Level 4.2 For 2D Video - EXS_MPEG4HighProfileLevel4_2_For2DVideo = 32, + EXS_MPEG4HighProfileLevel4_2_For2DVideo = 36, /// MPEG4 High Profile / Level 4.2 For 3D Video - EXS_MPEG4HighProfileLevel4_2_For3DVideo = 33, + EXS_MPEG4HighProfileLevel4_2_For3DVideo = 37, /// MPEG4 Stereo High Profile / Level 4.2 - EXS_MPEG4StereoHighProfileLevel4_2 = 34, - /// JPEG 2000 part 2 multi-component extensions (lossless) - EXS_JPEG2000MulticomponentLosslessOnly = 35, - /// JPEG 2000 part 2 multi-component extensions (lossless or lossy) - EXS_JPEG2000Multicomponent = 36, - /// JPIP Referenced - EXS_JPIPReferenced = 37, - /// JPIP Referenced Deflate - EXS_JPIPReferencedDeflate = 38 + EXS_MPEG4StereoHighProfileLevel4_2 = 38, + /// HEVC/H.265 Main Profile / Level 5.1 + EXS_HEVCMainProfileLevel5_1 = 39, + /// HEVC/H.265 Main 10 Profile / Level 5.1 + EXS_HEVCMain10ProfileLevel5_1 = 40 } E_TransferSyntax; /** enumeration of byte orders diff --git a/dcmdata/include/dcmtk/dcmdata/libi2d/i2doutpl.h b/dcmdata/include/dcmtk/dcmdata/libi2d/i2doutpl.h index c3d8d4cf..763612ad 100644 --- a/dcmdata/include/dcmtk/dcmdata/libi2d/i2doutpl.h +++ b/dcmdata/include/dcmtk/dcmdata/libi2d/i2doutpl.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2001-2011, OFFIS e.V. + * Copyright (C) 2001-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -23,9 +23,9 @@ #define I2DOUTPL_H #include "dcmtk/config/osconfig.h" +#include "dcmtk/oflog/oflog.h" #include "dcmtk/dcmdata/dcdatset.h" #include "dcmtk/dcmdata/dcelem.h" -#include "dcmtk/oflog/oflog.h" #include "dcmtk/dcmdata/libi2d/i2define.h" @@ -135,7 +135,7 @@ protected: elem = NULL; DcmTag tag(key); OFBool wasError = OFFalse; //if dicom element could be created, insert in to item and modify to value - if ( newDicomElement(elem, tag).good()) + if ( DcmItem::newDicomElement(elem, tag).good()) { if (targetDset->insert(elem, OFTrue).good()) { @@ -176,7 +176,7 @@ protected: DcmElement *elem = NULL; DcmTag tag(key); OFBool wasError = OFFalse; //if dicom element could be created, insert in to item and modify to value - if ( newDicomElement(elem, tag).good()) + if ( DcmItem::newDicomElement(elem, tag).good()) { if (targetDset->insert(elem, OFTrue).good()) { @@ -194,7 +194,7 @@ protected: if (wasError) { err += "Unable to insert type 2 attribute "; err += tag.getTagName(); err += " with value "; err += defaultValue; err += "\n"; - } + } } else { diff --git a/dcmdata/libi2d/Makefile.dep b/dcmdata/libi2d/Makefile.dep index 7bf63844..47ac0053 100644 --- a/dcmdata/libi2d/Makefile.dep +++ b/dcmdata/libi2d/Makefile.dep @@ -1,30 +1,21 @@ i2d.o: i2d.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/libi2d/i2d.h \ ../include/dcmtk/dcmdata/libi2d/i2doutpl.h \ - ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ - ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofstd.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../ofstd/include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dctypes.h \ - ../../oflog/include/dcmtk/oflog/oflog.h \ - ../../oflog/include/dcmtk/oflog/logger.h \ - ../../oflog/include/dcmtk/oflog/config.h \ ../../oflog/include/dcmtk/oflog/config/defines.h \ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ ../../oflog/include/dcmtk/oflog/loglevel.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../oflog/include/dcmtk/oflog/tchar.h \ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ ../../oflog/include/dcmtk/oflog/appender.h \ @@ -41,9 +32,18 @@ i2d.o: i2d.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ + ../include/dcmtk/dcmdata/dctypes.h ../include/dcmtk/dcmdata/dcdefine.h \ + ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ @@ -168,30 +168,21 @@ i2djpgs.o: i2djpgs.cc ../../config/include/dcmtk/config/osconfig.h \ i2dplnsc.o: i2dplnsc.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/libi2d/i2dplnsc.h \ ../include/dcmtk/dcmdata/libi2d/i2doutpl.h \ - ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ - ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofstd.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../ofstd/include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dctypes.h \ - ../../oflog/include/dcmtk/oflog/oflog.h \ - ../../oflog/include/dcmtk/oflog/logger.h \ - ../../oflog/include/dcmtk/oflog/config.h \ ../../oflog/include/dcmtk/oflog/config/defines.h \ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ ../../oflog/include/dcmtk/oflog/loglevel.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../oflog/include/dcmtk/oflog/tchar.h \ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ ../../oflog/include/dcmtk/oflog/appender.h \ @@ -208,9 +199,18 @@ i2dplnsc.o: i2dplnsc.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ + ../include/dcmtk/dcmdata/dctypes.h ../include/dcmtk/dcmdata/dcdefine.h \ + ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ @@ -222,30 +222,21 @@ i2dplnsc.o: i2dplnsc.cc ../../config/include/dcmtk/config/osconfig.h \ i2dplsc.o: i2dplsc.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/libi2d/i2dplsc.h \ ../include/dcmtk/dcmdata/libi2d/i2doutpl.h \ - ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ - ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofstd.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../ofstd/include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dctypes.h \ - ../../oflog/include/dcmtk/oflog/oflog.h \ - ../../oflog/include/dcmtk/oflog/logger.h \ - ../../oflog/include/dcmtk/oflog/config.h \ ../../oflog/include/dcmtk/oflog/config/defines.h \ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ ../../oflog/include/dcmtk/oflog/loglevel.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../oflog/include/dcmtk/oflog/tchar.h \ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ ../../oflog/include/dcmtk/oflog/appender.h \ @@ -262,9 +253,18 @@ i2dplsc.o: i2dplsc.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ + ../include/dcmtk/dcmdata/dctypes.h ../include/dcmtk/dcmdata/dcdefine.h \ + ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ @@ -276,30 +276,21 @@ i2dplsc.o: i2dplsc.cc ../../config/include/dcmtk/config/osconfig.h \ i2dplvlp.o: i2dplvlp.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/libi2d/i2dplvlp.h \ ../include/dcmtk/dcmdata/libi2d/i2doutpl.h \ - ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ - ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofstd.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../ofstd/include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dctypes.h \ - ../../oflog/include/dcmtk/oflog/oflog.h \ - ../../oflog/include/dcmtk/oflog/logger.h \ - ../../oflog/include/dcmtk/oflog/config.h \ ../../oflog/include/dcmtk/oflog/config/defines.h \ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ ../../oflog/include/dcmtk/oflog/loglevel.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../oflog/include/dcmtk/oflog/tchar.h \ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ ../../oflog/include/dcmtk/oflog/appender.h \ @@ -316,9 +307,18 @@ i2dplvlp.o: i2dplvlp.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ + ../include/dcmtk/dcmdata/dctypes.h ../include/dcmtk/dcmdata/dcdefine.h \ + ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ diff --git a/dcmdata/libi2d/i2d.cc b/dcmdata/libi2d/i2d.cc index 89adf213..137e02af 100644 --- a/dcmdata/libi2d/i2d.cc +++ b/dcmdata/libi2d/i2d.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2007-2015, OFFIS e.V. + * Copyright (C) 2007-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -683,7 +683,7 @@ OFString Image2Dcm::checkAndInventType1Attrib(const DcmTagKey& key, elem = NULL; DcmTag tag(key); OFBool wasError = OFFalse; // if DICOM element could be created, insert in to item and modify to value - if ( newDicomElement(elem, tag).good()) + if ( DcmItem::newDicomElement(elem, tag).good()) { if (targetDset->insert(elem, OFTrue).good()) { diff --git a/dcmdata/libi2d/i2dbmps.cc b/dcmdata/libi2d/i2dbmps.cc index 02a88366..02566703 100644 --- a/dcmdata/libi2d/i2dbmps.cc +++ b/dcmdata/libi2d/i2dbmps.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2009-2013, OFFIS e.V. + * Copyright (C) 2009-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -326,7 +326,7 @@ OFCondition I2DBmpSource::readBitmapData(const Uint16 width, const Uint32 row_length = ((width * bpp + 31) / 32) * 4; Uint8 *row_data; Uint32 y; - Sint32 direction; + OFBool positive_direction; Uint32 max; // "palette" may only be NULL if colors is 0 and vice versa @@ -341,14 +341,14 @@ OFCondition I2DBmpSource::readBitmapData(const Uint16 width, { /* This is a top-down BMP, we start at the first row and work our way down */ y = 1; - direction = 1; + positive_direction = OFTrue; max = height + 1; } else { /* Bottom-up BMP, we start with the last row and work our way up */ y = height; - direction = -1; + positive_direction = OFFalse; max = 0; } @@ -367,7 +367,7 @@ OFCondition I2DBmpSource::readBitmapData(const Uint16 width, } /* Go through each row of the image */ - for (; y != max; y += direction) + for (; y != max; (positive_direction ? ++y : --y)) { /* Calculate posData for this line, it is the index of the first byte for * this line. ( -1 because we start at index 1, but C at index 0) diff --git a/dcmdata/libsrc/CMakeLists.txt b/dcmdata/libsrc/CMakeLists.txt index fec02e54..9c405735 100644 --- a/dcmdata/libsrc/CMakeLists.txt +++ b/dcmdata/libsrc/CMakeLists.txt @@ -3,9 +3,9 @@ DCMTK_ADD_LIBRARY(dcmdata cmdlnarg dcbytstr dcchrstr dccodec dcdatset dcdatutl dcddirif dcdicdir dcdicent dcdict dcdictbi dcdirrec dcelem dcerror dcfilefo dcfilter dchashdi dcistrma - dcistrmb dcistrmf dcistrmz dcitem dclist dcmetinf dcobject dcostrma dcostrmb - dcostrmf dcostrmz dcpath dcpcache dcpixel dcpixseq dcpxitem dcrleccd dcrlecce - dcrlecp dcrledrg dcrleerg dcrlerp dcsequen dcspchrs dcstack dcswap dctag + dcistrmb dcistrmf dcistrmz dcitem dcjson dclist dcmatch dcmetinf dcobject dcostrma + dcostrmb dcostrmf dcostrmz dcpath dcpcache dcpixel dcpixseq dcpxitem dcrleccd + dcrlecce dcrlecp dcrledrg dcrleerg dcrlerp dcsequen dcspchrs dcstack dcswap dctag dctagkey dctypes dcuid dcvr dcvrae dcvras dcvrat dcvrcs dcvrda dcvrds dcvrdt dcvrfd dcvrfl dcvris dcvrlo dcvrlt dcvrobow dcvrod dcvrof dcvrol dcvrpn dcvrpobw dcvrsh dcvrsl dcvrss dcvrst dcvrtm dcvruc dcvrui dcvrul dcvrulup dcvrur dcvrus diff --git a/dcmdata/libsrc/Makefile.dep b/dcmdata/libsrc/Makefile.dep index b328a01c..e5127219 100644 --- a/dcmdata/libsrc/Makefile.dep +++ b/dcmdata/libsrc/Makefile.dep @@ -55,7 +55,9 @@ dcbytstr.o: dcbytstr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dcbytstr.h ../include/dcmtk/dcmdata/dctypes.h \ + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcbytstr.h \ + ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -83,12 +85,11 @@ dcbytstr.o: dcbytstr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcelem.h \ - ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h + ../include/dcmtk/dcmdata/dcstack.h dcchrstr.o: dcchrstr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcspchrs.h \ ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ @@ -100,10 +101,11 @@ dcchrstr.o: dcchrstr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ ../../ofstd/include/dcmtk/ofstd/oftraits.h \ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcitem.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -143,8 +145,9 @@ dcchrstr.o: dcchrstr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ ../include/dcmtk/dcmdata/dclist.h ../include/dcmtk/dcmdata/dcpcache.h \ - ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcchrstr.h \ - ../include/dcmtk/dcmdata/dcbytstr.h ../include/dcmtk/dcmdata/dcelem.h + ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcjson.h \ + ../include/dcmtk/dcmdata/dcchrstr.h ../include/dcmtk/dcmdata/dcbytstr.h \ + ../include/dcmtk/dcmdata/dcelem.h dccodec.o: dccodec.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dccodec.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ @@ -216,7 +219,9 @@ dcdatset.o: dcdatset.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcitem.h \ + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcdatset.h \ + ../include/dcmtk/dcmdata/dcitem.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ @@ -245,18 +250,18 @@ dcdatset.o: dcdatset.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ - ../include/dcmtk/dcmdata/dclist.h ../include/dcmtk/dcmdata/dcpcache.h \ - ../include/dcmtk/dcmdata/dcvrus.h ../include/dcmtk/dcmdata/dcelem.h \ - ../include/dcmtk/dcmdata/dcpixel.h ../include/dcmtk/dcmdata/dcvrpobw.h \ - ../include/dcmtk/dcmdata/dcvrobow.h ../include/dcmtk/dcmdata/dcdeftag.h \ - ../include/dcmtk/dcmdata/dcostrma.h ../include/dcmtk/dcmdata/dcostrmf.h \ - ../include/dcmtk/dcmdata/dcistrma.h ../include/dcmtk/dcmdata/dcistrmf.h \ - ../include/dcmtk/dcmdata/dcwcache.h ../include/dcmtk/dcmdata/dcfcache.h + ../include/dcmtk/dcmdata/dcstack.h ../include/dcmtk/dcmdata/dclist.h \ + ../include/dcmtk/dcmdata/dcpcache.h ../include/dcmtk/dcmdata/dcvrus.h \ + ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcpixel.h \ + ../include/dcmtk/dcmdata/dcvrpobw.h ../include/dcmtk/dcmdata/dcvrobow.h \ + ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcostrma.h \ + ../include/dcmtk/dcmdata/dcostrmf.h ../include/dcmtk/dcmdata/dcistrma.h \ + ../include/dcmtk/dcmdata/dcistrmf.h ../include/dcmtk/dcmdata/dcwcache.h \ + ../include/dcmtk/dcmdata/dcfcache.h dcdatutl.o: dcdatutl.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcdatutl.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ @@ -595,7 +600,8 @@ dcdirrec.o: dcdirrec.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrof.h ../include/dcmtk/dcmdata/dcvrod.h \ ../include/dcmtk/dcmdata/dcvrol.h ../include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmdata/dcspchrs.h \ - ../../ofstd/include/dcmtk/ofstd/ofchrenc.h + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h dcelem.o: dcelem.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -610,11 +616,13 @@ dcelem.o: dcelem.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcelem.h \ + ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcdefine.h \ - ../include/dcmtk/dcmdata/dcxfer.h ../include/dcmtk/dcmdata/dctypes.h \ + ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ + ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -641,14 +649,13 @@ dcelem.o: dcelem.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/offile.h ../include/dcmtk/dcmdata/dcvr.h \ - ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dctagkey.h \ - ../include/dcmtk/dcmdata/dcstack.h ../include/dcmtk/dcmdata/dcswap.h \ - ../include/dcmtk/dcmdata/dcistrma.h ../include/dcmtk/dcmdata/dcostrma.h \ - ../include/dcmtk/dcmdata/dcfcache.h ../include/dcmtk/dcmdata/dcwcache.h \ - ../include/dcmtk/dcmdata/dcitem.h ../include/dcmtk/dcmdata/dclist.h \ - ../include/dcmtk/dcmdata/dcpcache.h ../include/dcmtk/dcmdata/dcdeftag.h \ - ../include/dcmtk/dcmdata/vrscan.h ../include/dcmtk/dcmdata/dcpath.h \ - ../include/dcmtk/dcmdata/dcdatset.h + ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dcstack.h \ + ../include/dcmtk/dcmdata/dcswap.h ../include/dcmtk/dcmdata/dcistrma.h \ + ../include/dcmtk/dcmdata/dcostrma.h ../include/dcmtk/dcmdata/dcfcache.h \ + ../include/dcmtk/dcmdata/dcwcache.h ../include/dcmtk/dcmdata/dcitem.h \ + ../include/dcmtk/dcmdata/dclist.h ../include/dcmtk/dcmdata/dcpcache.h \ + ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/vrscan.h \ + ../include/dcmtk/dcmdata/dcpath.h ../include/dcmtk/dcmdata/dcdatset.h dcerror.o: dcerror.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcerror.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ @@ -718,7 +725,7 @@ dcfilefo.o: dcfilefo.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcuid.h ../include/dcmtk/dcmdata/dcostrma.h \ ../include/dcmtk/dcmdata/dcostrmf.h ../include/dcmtk/dcmdata/dcistrma.h \ ../include/dcmtk/dcmdata/dcistrmf.h ../include/dcmtk/dcmdata/dcwcache.h \ - ../include/dcmtk/dcmdata/dcfcache.h + ../include/dcmtk/dcmdata/dcfcache.h ../include/dcmtk/dcmdata/dcjson.h dcfilter.o: dcfilter.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcfilter.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ @@ -1076,9 +1083,21 @@ dcitem.o: dcitem.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrus.h ../include/dcmtk/dcmdata/dcvrut.h \ ../include/dcmtk/dcmdata/dcspchrs.h \ ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../include/dcmtk/dcmdata/dcjson.h +dcjson.o: dcjson.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmdata/dcjson.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcdefine.h dclist.o: dclist.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../include/dcmtk/dcmdata/dclist.h \ @@ -1128,6 +1147,64 @@ dclist.o: dclist.cc ../../config/include/dcmtk/config/osconfig.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h +dcmatch.o: dcmatch.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../include/dcmtk/dcmdata/dcmatch.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../include/dcmtk/dcmdata/dcvrda.h ../include/dcmtk/dcmdata/dcbytstr.h \ + ../include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ + ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcstack.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../include/dcmtk/dcmdata/dcvrtm.h dcmetinf.o: dcmetinf.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ @@ -1179,7 +1256,8 @@ dcmetinf.o: dcmetinf.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dclist.h ../include/dcmtk/dcmdata/dcpcache.h \ ../include/dcmtk/dcmdata/dcvrul.h ../include/dcmtk/dcmdata/dcelem.h \ ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcistrma.h \ - ../include/dcmtk/dcmdata/dcistrmf.h ../include/dcmtk/dcmdata/dcostrma.h + ../include/dcmtk/dcmdata/dcistrmf.h ../include/dcmtk/dcmdata/dcostrma.h \ + ../include/dcmtk/dcmdata/dcjson.h dcobject.o: dcobject.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstd.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -1194,11 +1272,12 @@ dcobject.o: dcobject.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcdefine.h \ - ../include/dcmtk/dcmdata/dcxfer.h ../include/dcmtk/dcmdata/dctypes.h \ + ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ + ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -1225,10 +1304,9 @@ dcobject.o: dcobject.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/offile.h ../include/dcmtk/dcmdata/dcvr.h \ - ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dctagkey.h \ - ../include/dcmtk/dcmdata/dcstack.h ../include/dcmtk/dcmdata/dcdeftag.h \ - ../include/dcmtk/dcmdata/dcswap.h ../include/dcmtk/dcmdata/dcistrma.h \ - ../include/dcmtk/dcmdata/dcostrma.h + ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dcstack.h \ + ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcswap.h \ + ../include/dcmtk/dcmdata/dcistrma.h ../include/dcmtk/dcmdata/dcostrma.h dcostrma.o: dcostrma.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcostrma.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ @@ -1988,13 +2066,14 @@ dcsequen.o: dcsequen.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dcsequen.h \ + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcsequen.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcdefine.h \ - ../include/dcmtk/dcmdata/dcxfer.h ../include/dcmtk/dcmdata/dctypes.h \ + ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ + ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -2021,14 +2100,14 @@ dcsequen.o: dcsequen.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ - ../include/dcmtk/dcmdata/dclist.h ../include/dcmtk/dcmdata/dcitem.h \ - ../include/dcmtk/dcmdata/dcpcache.h ../include/dcmtk/dcmdata/dcdirrec.h \ - ../include/dcmtk/dcmdata/dcfilefo.h ../include/dcmtk/dcmdata/dcdatset.h \ - ../include/dcmtk/dcmdata/dcpxitem.h ../include/dcmtk/dcmdata/dcvrobow.h \ - ../include/dcmtk/dcmdata/dcofsetl.h ../include/dcmtk/dcmdata/dcswap.h \ - ../include/dcmtk/dcmdata/dcmetinf.h ../include/dcmtk/dcmdata/dcdeftag.h \ - ../include/dcmtk/dcmdata/dcistrma.h ../include/dcmtk/dcmdata/dcostrma.h + ../include/dcmtk/dcmdata/dcstack.h ../include/dcmtk/dcmdata/dclist.h \ + ../include/dcmtk/dcmdata/dcitem.h ../include/dcmtk/dcmdata/dcpcache.h \ + ../include/dcmtk/dcmdata/dcdirrec.h ../include/dcmtk/dcmdata/dcfilefo.h \ + ../include/dcmtk/dcmdata/dcdatset.h ../include/dcmtk/dcmdata/dcpxitem.h \ + ../include/dcmtk/dcmdata/dcvrobow.h ../include/dcmtk/dcmdata/dcofsetl.h \ + ../include/dcmtk/dcmdata/dcswap.h ../include/dcmtk/dcmdata/dcmetinf.h \ + ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcistrma.h \ + ../include/dcmtk/dcmdata/dcostrma.h dcspchrs.o: dcspchrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcspchrs.h \ ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ @@ -2040,10 +2119,11 @@ dcspchrs.o: dcspchrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ ../../ofstd/include/dcmtk/ofstd/oftraits.h \ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcitem.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -2446,7 +2526,8 @@ dcvrat.o: dcvrat.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h + ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ + ../include/dcmtk/dcmdata/dcjson.h dcvrcs.o: dcvrcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../include/dcmtk/dcmdata/dcvrcs.h ../include/dcmtk/dcmdata/dcbytstr.h \ @@ -2594,7 +2675,8 @@ dcvrds.o: dcvrds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h + ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ + ../include/dcmtk/dcmdata/dcjson.h dcvrdt.o: dcvrdt.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrdt.h ../include/dcmtk/dcmdata/dcbytstr.h \ ../include/dcmtk/dcmdata/dctypes.h \ @@ -2792,25 +2874,28 @@ dcvris.o: dcvris.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h + ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ + ../include/dcmtk/dcmdata/dcjson.h dcvrlo.o: dcvrlo.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmdata/dcjson.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcdefine.h \ ../include/dcmtk/dcmdata/dcvrlo.h ../include/dcmtk/dcmdata/dcchrstr.h \ ../include/dcmtk/dcmdata/dcbytstr.h ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ - ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ - ../../ofstd/include/dcmtk/ofstd/ofcast.h \ - ../../ofstd/include/dcmtk/ofstd/ofexport.h \ - ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../oflog/include/dcmtk/oflog/config/defines.h \ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ ../../oflog/include/dcmtk/oflog/loglevel.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../oflog/include/dcmtk/oflog/tstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../oflog/include/dcmtk/oflog/tchar.h \ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ ../../oflog/include/dcmtk/oflog/appender.h \ @@ -2836,12 +2921,11 @@ dcvrlo.o: dcvrlo.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcelem.h \ - ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h + ../include/dcmtk/dcmdata/dcstack.h dcvrlt.o: dcvrlt.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrlt.h ../include/dcmtk/dcmdata/dcchrstr.h \ ../include/dcmtk/dcmdata/dcbytstr.h ../include/dcmtk/dcmdata/dctypes.h \ @@ -2906,12 +2990,13 @@ dcvrobow.o: dcvrobow.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ ../../ofstd/include/dcmtk/ofstd/ofuuid.h \ - ../include/dcmtk/dcmdata/dcvrobow.h ../include/dcmtk/dcmdata/dcelem.h \ - ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcvrobow.h \ + ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcdefine.h \ - ../include/dcmtk/dcmdata/dcxfer.h ../include/dcmtk/dcmdata/dctypes.h \ + ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ + ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -2938,9 +3023,9 @@ dcvrobow.o: dcvrobow.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/offile.h ../include/dcmtk/dcmdata/dcvr.h \ - ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dctagkey.h \ - ../include/dcmtk/dcmdata/dcstack.h ../include/dcmtk/dcmdata/dcdeftag.h \ - ../include/dcmtk/dcmdata/dcswap.h ../include/dcmtk/dcmdata/dcuid.h + ../include/dcmtk/dcmdata/dctag.h ../include/dcmtk/dcmdata/dcstack.h \ + ../include/dcmtk/dcmdata/dcdeftag.h ../include/dcmtk/dcmdata/dcswap.h \ + ../include/dcmtk/dcmdata/dcuid.h dcvrod.o: dcvrod.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofuuid.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ @@ -2991,7 +3076,7 @@ dcvrod.o: dcvrod.cc ../../config/include/dcmtk/config/osconfig.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ - ../include/dcmtk/dcmdata/dcswap.h + ../include/dcmtk/dcmdata/dcswap.h ../include/dcmtk/dcmdata/dcjson.h dcvrof.o: dcvrof.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofuuid.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ @@ -3001,14 +3086,15 @@ dcvrof.o: dcvrof.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../include/dcmtk/dcmdata/dcvrof.h ../include/dcmtk/dcmdata/dcvrfl.h \ - ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcvrof.h \ + ../include/dcmtk/dcmdata/dcvrfl.h ../include/dcmtk/dcmdata/dcelem.h \ + ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../include/dcmtk/dcmdata/dcerror.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcxfer.h \ - ../include/dcmtk/dcmdata/dctypes.h \ + ../include/dcmtk/dcmdata/dcxfer.h ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -3041,8 +3127,7 @@ dcvrof.o: dcvrof.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ - ../include/dcmtk/dcmdata/dcswap.h + ../include/dcmtk/dcmdata/dcstack.h ../include/dcmtk/dcmdata/dcswap.h dcvrol.o: dcvrol.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofuuid.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ @@ -3093,25 +3178,27 @@ dcvrol.o: dcvrol.cc ../../config/include/dcmtk/config/osconfig.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ - ../include/dcmtk/dcmdata/dcswap.h + ../include/dcmtk/dcmdata/dcjson.h ../include/dcmtk/dcmdata/dcswap.h dcvrpn.o: dcvrpn.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmdata/dcjson.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcdefine.h \ ../include/dcmtk/dcmdata/dcvrpn.h ../include/dcmtk/dcmdata/dcchrstr.h \ ../include/dcmtk/dcmdata/dcbytstr.h ../include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ - ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ - ../../ofstd/include/dcmtk/ofstd/ofcast.h \ - ../../ofstd/include/dcmtk/ofstd/ofexport.h \ - ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../oflog/include/dcmtk/oflog/config/defines.h \ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ ../../oflog/include/dcmtk/oflog/loglevel.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../oflog/include/dcmtk/oflog/tstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../oflog/include/dcmtk/oflog/tchar.h \ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ ../../oflog/include/dcmtk/oflog/appender.h \ @@ -3137,12 +3224,11 @@ dcvrpn.o: dcvrpn.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmdata/dcdefine.h ../include/dcmtk/dcmdata/dcelem.h \ - ../include/dcmtk/dcmdata/dcobject.h \ + ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h + ../include/dcmtk/dcmdata/dcstack.h dcvrpobw.o: dcvrpobw.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvrpobw.h ../include/dcmtk/dcmdata/dcvrobow.h \ ../include/dcmtk/dcmdata/dcelem.h ../include/dcmtk/dcmdata/dcobject.h \ @@ -3240,7 +3326,8 @@ dcvrsh.o: dcvrsh.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/dcerror.h ../include/dcmtk/dcmdata/dcxfer.h \ ../include/dcmtk/dcmdata/dcvr.h ../include/dcmtk/dcmdata/dctag.h \ - ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h + ../include/dcmtk/dcmdata/dctagkey.h ../include/dcmtk/dcmdata/dcstack.h \ + ../include/dcmtk/dcmdata/dcjson.h dcvrsl.o: dcvrsl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../include/dcmtk/dcmdata/dcvrsl.h ../include/dcmtk/dcmdata/dcelem.h \ diff --git a/dcmdata/libsrc/Makefile.in b/dcmdata/libsrc/Makefile.in index f8442575..04b14f2c 100644 --- a/dcmdata/libsrc/Makefile.in +++ b/dcmdata/libsrc/Makefile.in @@ -17,7 +17,7 @@ oflogdir = $(top_srcdir)/../oflog LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include LIBDIRS = -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc -LOCALLIBS = -loflog -lofstd $(ICONVLIBS) +LOCALLIBS = -loflog -lofstd $(CHARCONVLIBS) LOCALDEFS = # clear environment variable in the scope of this makefile @@ -47,7 +47,8 @@ objs = dcpixseq.o dcpxitem.o dcuid.o dcerror.o \ dcdictbi.o dctagkey.o dcdicent.o dcdict.o dcvr.o dchashdi.o cmdlnarg.o \ dcvrut.o dcvrur.o dcvruc.o dctypes.o dcpcache.o dcddirif.o dcistrma.o \ dcistrmb.o dcistrmf.o dcistrmz.o dcostrma.o dcostrmb.o dcostrmf.o \ - dcostrmz.o dcwcache.o dcpath.o vrscan.o vrscanl.o dcfilter.o + dcostrmz.o dcwcache.o dcpath.o vrscan.o vrscanl.o dcfilter.o dcjson.o \ + dcmatch.o support_objs = mkdeftag.o mkdictbi.o support_progs = mkdeftag mkdictbi diff --git a/dcmdata/libsrc/dcbytstr.cc b/dcmdata/libsrc/dcbytstr.cc index e3c6c741..794d4b66 100644 --- a/dcmdata/libsrc/dcbytstr.cc +++ b/dcmdata/libsrc/dcbytstr.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -24,6 +24,7 @@ #include "dcmtk/ofstd/ofstream.h" #include "dcmtk/ofstd/ofstring.h" #include "dcmtk/ofstd/ofstd.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcbytstr.h" #include "dcmtk/dcmdata/dcvr.h" @@ -81,6 +82,16 @@ OFCondition getStringPart(OFString &result, // ******************************** +DcmByteString::DcmByteString(const DcmTag &tag) + : DcmElement(tag, 0), + paddingChar(' '), + maxLength(DCM_UndefinedLength), + realLength(0), + fStringMode(DCM_UnknownString), + nonSignificantChars() +{ +} + DcmByteString::DcmByteString(const DcmTag &tag, const Uint32 len) @@ -898,3 +909,38 @@ OFCondition DcmByteString::checkStringValue(const OFString &value, } return result; } + + +// ******************************** + + +OFCondition DcmByteString::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + DcmElement::writeJsonOpener(out, format); + /* write element value (if non-empty) */ + if (!isEmpty()) + { + OFString value; + OFCondition status = getOFString(value, 0L); + if (status.bad()) + return status; + format.printValuePrefix(out); + DcmJsonFormat::printValueString(out, value); + const unsigned long vm = getVM(); + for (unsigned long valNo = 1; valNo < vm; ++valNo) + { + status = getOFString(value, valNo); + if (status.bad()) + return status; + format.printNextArrayElementPrefix(out); + DcmJsonFormat::printValueString(out, value); + } + format.printValueSuffix(out); + } + /* write JSON Closer */ + DcmElement::writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} diff --git a/dcmdata/libsrc/dcchrstr.cc b/dcmdata/libsrc/dcchrstr.cc index 8a6f955a..3f4d1585 100644 --- a/dcmdata/libsrc/dcchrstr.cc +++ b/dcmdata/libsrc/dcchrstr.cc @@ -25,6 +25,7 @@ #include "dcmtk/dcmdata/dcspchrs.h" /* for class DcmSpecificCharacterSet */ #include "dcmtk/dcmdata/dcitem.h" /* for class DcmItem */ #include "dcmtk/dcmdata/dcdeftag.h" /* for tag definitions */ +#include "dcmtk/dcmdata/dcjson.h" /* json helper classes */ // // This implementation does not support 16 bit character sets. Since 8 bit @@ -45,14 +46,12 @@ DcmCharString::DcmCharString(const DcmTag &tag, const Uint32 len) - : DcmByteString(tag, len), - delimiterChars() + : DcmByteString(tag, len) { } DcmCharString::DcmCharString(const DcmCharString &old) - : DcmByteString(old), - delimiterChars(old.delimiterChars) + : DcmByteString(old) { } @@ -63,13 +62,7 @@ DcmCharString::~DcmCharString(void) DcmCharString &DcmCharString::operator=(const DcmCharString &obj) { - if (this != &obj) - { - DcmByteString::operator=(obj); - - /* copy member variables */ - delimiterChars = obj.delimiterChars; - } + DcmByteString::operator=(obj); return *this; } @@ -173,7 +166,7 @@ OFCondition DcmCharString::convertCharacterSet(DcmSpecificCharacterSet &converte { OFString resultStr; // convert string to selected character string and replace the element value - status = converter.convertString(str, len, resultStr, delimiterChars); + status = converter.convertString(str, len, resultStr, getDelimiterChars()); if (status.good()) { // check whether the value has changed during the conversion (slows down the process?) @@ -222,3 +215,55 @@ OFCondition DcmCharString::getSpecificCharacterSet(OFString &charset) } return status; } + + +// ******************************** + + +OFCondition DcmCharString::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + DcmElement::writeJsonOpener(out, format); + /* write element value (if non-empty) */ + if (!isEmpty()) + { + OFString value; + if (format.asBulkDataURI(getTag(), value)) + { + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, value); + } + else + { + OFCondition status = getOFString(value, 0L); + if (status.bad()) + return status; + format.printValuePrefix(out); + DcmJsonFormat::printValueString(out, value); + const unsigned long vm = getVM(); + for (unsigned long valNo = 1; valNo < vm; ++valNo) + { + status = getOFString(value, valNo); + if (status.bad()) + return status; + format.printNextArrayElementPrefix(out); + DcmJsonFormat::printValueString(out, value); + } + format.printValueSuffix(out); + } + } + /* write JSON Closer */ + DcmElement::writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} + + +// ******************************** + + +const OFString& DcmCharString::getDelimiterChars() const +{ + return DcmVR(EVR_UN).getDelimiterChars(); +} diff --git a/dcmdata/libsrc/dcdatset.cc b/dcmdata/libsrc/dcdatset.cc index 3fcf6c34..61f4bc16 100644 --- a/dcmdata/libsrc/dcdatset.cc +++ b/dcmdata/libsrc/dcdatset.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,7 @@ #include "dcmtk/ofstd/ofstack.h" #include "dcmtk/ofstd/ofstd.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcdatset.h" #include "dcmtk/dcmdata/dcxfer.h" #include "dcmtk/dcmdata/dcvrus.h" @@ -339,6 +340,30 @@ OFCondition DcmDataset::writeXML(STD_NAMESPACE ostream &out, // ******************************** +OFCondition DcmDataset::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + // write dataset content + if (!elementList->empty()) + { + elementList->seek(ELP_first); + OFCondition status = EC_Normal; + // write content of all children + status = elementList->get()->writeJson(out, format); + while (status.good() && elementList->seek(ELP_next)) + { + out << "," << format.newline(); + status = elementList->get()->writeJson(out, format); + } + return status; + } + return EC_Normal; +} + + +// ******************************** + + OFCondition DcmDataset::read(DcmInputStream &inStream, const E_TransferSyntax xfer, const E_GrpLenEncoding glenc, @@ -418,6 +443,7 @@ OFCondition DcmDataset::read(DcmInputStream &inStream, /* pass processing the task to class DcmItem */ if (errorFlag.good()) errorFlag = DcmItem::read(inStream, OriginalXfer, glenc, maxReadLength); + } /* if the error flag shows ok or that the end of the stream was encountered, */ @@ -425,15 +451,21 @@ OFCondition DcmDataset::read(DcmInputStream &inStream, /* case, we need to do something for the current dataset object */ if (errorFlag.good() || errorFlag == EC_EndOfStream) { - /* set the error flag to ok */ - errorFlag = EC_Normal; + /* perform some final checks on dataset level */ + errorFlag = doPostReadChecks(); - /* take care of group length (according to what is specified */ - /* in glenc) and padding elements (don't change anything) */ - computeGroupLengthAndPadding(glenc, EPD_noChange, OriginalXfer); + if (errorFlag.good()) + { + /* set the error flag to ok */ + errorFlag = EC_Normal; - /* and set the transfer state to ERW_ready to indicate that the data set is complete */ - setTransferState(ERW_ready); + /* take care of group length (according to what is specified */ + /* in glenc) and padding elements (don't change anything) */ + computeGroupLengthAndPadding(glenc, EPD_noChange, OriginalXfer); + + /* and set the transfer state to ERW_ready to indicate that the data set is complete */ + setTransferState(ERW_ready); + } } /* dump information if required */ @@ -762,3 +794,46 @@ void DcmDataset::removeAllButOriginalRepresentations() } } } + + +// ******************************** + + +OFCondition DcmDataset::doPostReadChecks() +{ + DcmElement* pixData = NULL; + DcmXfer xf(OriginalXfer); + OFCondition result = EC_Normal; + if (findAndGetElement(DCM_PixelData, pixData).good()) + { + Uint32 valueLength = pixData->getLengthField(); + if (xf.isEncapsulated()) + { + if (valueLength != DCM_UndefinedLength) + { + if (dcmUseExplLengthPixDataForEncTS.get() == OFFalse /* default case */) + { + /* length of top level dataset's Pixel Data is explicitly */ + /* defined but we have a transfer syntax requiring */ + /* encapsulated pixel data (always encoded with undefined */ + /* length). Print and return an error. */ + DCMDATA_ERROR("Found explicit length Pixel Data in top level " + << "dataset with transfer syntax " << xf.getXferName() + << ": Only undefined length permitted"); + result = EC_PixelDataExplLengthIllegal; + } + else + { + /* Only print warning if requested by related OFGlobal, */ + /* and behave like as we have the same case as for an */ + /* icon image, which is always uncompressed (see above). */ + DCMDATA_WARN("Found explicit length Pixel Data in top level " + << "dataset with transfer syntax " << xf.getXferName() + << ": Only undefined length permitted (ignored on explicit request)"); + } + } + } + } + + return result; +} diff --git a/dcmdata/libsrc/dcddirif.cc b/dcmdata/libsrc/dcddirif.cc index b31bf12b..ca118d7a 100644 --- a/dcmdata/libsrc/dcddirif.cc +++ b/dcmdata/libsrc/dcddirif.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2002-2016, OFFIS e.V. + * Copyright (C) 2002-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -667,7 +667,8 @@ static E_DirRecType sopClassToRecordType(const OFString &sopClass) compare(sopClass, UID_SpectaclePrescriptionReportStorage) || compare(sopClass, UID_MacularGridThicknessAndVolumeReportStorage) || compare(sopClass, UID_ImplantationPlanSRDocumentStorage) || - compare(sopClass, UID_AcquisitionContextSRStorage)) + compare(sopClass, UID_AcquisitionContextSRStorage) || + compare(sopClass, UID_SimplifiedAdultEchoSRStorage)) { result = ERT_SRDocument; } @@ -1567,7 +1568,8 @@ OFCondition DicomDirInterface::checkSOPClassAndXfer(DcmMetaInfo *metainfo, compare(mediaSOPClassUID, UID_SpectaclePrescriptionReportStorage) || compare(mediaSOPClassUID, UID_MacularGridThicknessAndVolumeReportStorage) || compare(mediaSOPClassUID, UID_ImplantationPlanSRDocumentStorage) || - compare(mediaSOPClassUID, UID_AcquisitionContextSRStorage); + compare(mediaSOPClassUID, UID_AcquisitionContextSRStorage) || + compare(mediaSOPClassUID, UID_SimplifiedAdultEchoSRStorage); } /* is it one of the waveform SOP Classes? */ if (!found) @@ -5353,7 +5355,7 @@ OFBool DicomDirInterface::warnAboutInconsistentAttributes(DcmDirectoryRecord *re first = OFFalse; } } - if (!result & abortCheck) + if (!result && abortCheck) DCMDATA_ERROR("aborting on first inconsistent file: " << sourceFilename); /* return OFTrue in case of any inconsistency */ return !result; diff --git a/dcmdata/libsrc/dcdicdir.cc b/dcmdata/libsrc/dcdicdir.cc index 64759e3b..ec1dc389 100644 --- a/dcmdata/libsrc/dcdicdir.cc +++ b/dcmdata/libsrc/dcdicdir.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -395,11 +395,21 @@ OFCondition DcmDicomDir::moveRecordToTree( DcmDirectoryRecord *startRec, l_error = EC_IllegalCall; else { - while ( startRec != NULL ) + while ( (startRec != NULL) && l_error.good() ) { DcmDirectoryRecord *lowerRec = NULL; DcmDirectoryRecord *nextRec = NULL; + // check whether directory record is really part of the given sequence: + if (&fromDirSQ != startRec->getParent()) + { + DCMDATA_ERROR("DcmDicomDir: Record with offset=" << startRec->getFileOffset() + << " is referenced more than once, ignoring later reference"); + l_error = EC_InvalidDICOMDIR; + // exit the while loop + break; + } + DcmUnsignedLongOffset *offElem; offElem = lookForOffsetElem( startRec, DCM_OffsetOfReferencedLowerLevelDirectoryEntity ); if ( offElem != NULL ) @@ -408,8 +418,8 @@ OFCondition DcmDicomDir::moveRecordToTree( DcmDirectoryRecord *startRec, if ( offElem != NULL ) nextRec = OFstatic_cast(DcmDirectoryRecord *, offElem->getNextRecord()); - DCMDATA_TRACE("DcmDicomDir::moveRecordToTree() Record " - << startRec->getTag() + DCMDATA_TRACE("DcmDicomDir::moveRecordToTree() Record with" + << " offset=" << startRec->getFileOffset() << " p=" << OFstatic_cast(void *, startRec) << " has lower=" << OFstatic_cast(void *, lowerRec) << " and next=" << OFstatic_cast(void *, nextRec) << " Record"); @@ -423,14 +433,17 @@ OFCondition DcmDicomDir::moveRecordToTree( DcmDirectoryRecord *startRec, DcmItem *dit = fromDirSQ.remove( startRec ); if ( dit == NULL ) { - DCMDATA_ERROR("DcmDicomDir::moveRecordToTree() DirRecord is part of unknown Sequence"); + DCMDATA_ERROR("DcmDicomDir: Record with offset=" << startRec->getFileOffset() + << " is part of unknown Sequence"); } } else { DCMDATA_ERROR("DcmDicomDir::moveRecordToTree() Cannot insert DirRecord (=NULL?)"); } - moveRecordToTree( lowerRec, fromDirSQ, startRec ); + + // recursively call this method for next lower level: + l_error = moveRecordToTree( lowerRec, fromDirSQ, startRec ); // We handled this record, now move on to the next one on this level. // The next while-loop iteration does the equivalent of the following: @@ -475,6 +488,7 @@ OFCondition DcmDicomDir::convertLinearToTree() { DcmDataset &dset = getDataset(); // guaranteed to exist DcmSequenceOfItems &localDirRecSeq = getDirRecSeq( dset ); + // currently, always returns EC_Normal OFCondition l_error = resolveAllOffsets( dset ); // search for first directory record: @@ -484,15 +498,17 @@ OFCondition DcmDicomDir::convertLinearToTree() firstRootRecord = OFstatic_cast(DcmDirectoryRecord *, offElem->getNextRecord()); // create tree structure from flat record list: - moveRecordToTree( firstRootRecord, localDirRecSeq, &getRootRecord() ); - - // move MRDRs from localDirRecSeq to global MRDRSeq: - moveMRDRbetweenSQs( localDirRecSeq, getMRDRSequence() ); + l_error = moveRecordToTree( firstRootRecord, localDirRecSeq, &getRootRecord() ); - // dissolve MRDR references for all remaining items - for (unsigned long i = localDirRecSeq.card(); i > 0; i-- ) - linkMRDRtoRecord( OFstatic_cast(DcmDirectoryRecord *, localDirRecSeq.getItem(i-1)) ); + if (l_error.good()) + { + // move MRDRs from localDirRecSeq to global MRDRSeq: + moveMRDRbetweenSQs( localDirRecSeq, getMRDRSequence() ); + // dissolve MRDR references for all remaining items + for (unsigned long i = localDirRecSeq.card(); i > 0; i-- ) + linkMRDRtoRecord( OFstatic_cast(DcmDirectoryRecord *, localDirRecSeq.getItem(i-1)) ); + } return l_error; } diff --git a/dcmdata/libsrc/dcdictbi.cc b/dcmdata/libsrc/dcdictbi.cc index 42ae3c2d..2e091454 100644 --- a/dcmdata/libsrc/dcdictbi.cc +++ b/dcmdata/libsrc/dcdictbi.cc @@ -4,7 +4,7 @@ ** ** User: joergr ** Host: thinkpad -** Date: 2016-06-13 09:57:11 +** Date: 2017-01-31 14:11:02 ** Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdictbi ** ** From: ../data/dicom.dic @@ -700,6 +700,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_SH, "TimezoneOffsetFromUTC", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0008, 0x0220, 0x0008, 0x0220, + EVR_SQ, "ResponsibleGroupCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0221, 0x0008, 0x0221, + EVR_CS, "EquipmentModality", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0222, 0x0008, 0x0222, + EVR_LO, "ManufacturerRelatedModelGroup", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0008, 0x0300, 0x0008, 0x0300, EVR_SQ, "PrivateDataElementCharacteristicsSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -732,6 +744,42 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_CS, "DeidentificationAction", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0008, 0x0308, 0x0008, 0x0308, + EVR_US, "PrivateDataElement", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0309, 0x0008, 0x0309, + EVR_UL, "PrivateDataElementValueMultiplicity", 1, 3, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030a, 0x0008, 0x030a, + EVR_CS, "PrivateDataElementValueRepresentation", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030b, 0x0008, 0x030b, + EVR_UL, "PrivateDataElementNumberOfItems", 1, 2, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030c, 0x0008, 0x030c, + EVR_UC, "PrivateDataElementName", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030d, 0x0008, 0x030d, + EVR_UC, "PrivateDataElementKeyword", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030e, 0x0008, 0x030e, + EVR_UT, "PrivateDataElementDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030f, 0x0008, 0x030f, + EVR_UT, "PrivateDataElementEncoding", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0310, 0x0008, 0x0310, + EVR_SQ, "PrivateDataElementDefinitionSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0008, 0x1000, 0x0008, 0x1000, EVR_AE, "RETIRED_NetworkID", 1, 1, "DICOM/retired", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -2074,6 +2122,22 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_SQ, "StrainCodeSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0010, 0x0221, 0x0010, 0x0221, + EVR_SQ, "GeneticModificationsSequence", 1, 1, "DICOM/CP_1619", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0010, 0x0222, 0x0010, 0x0222, + EVR_UC, "GeneticModificationsDescription", 1, 1, "DICOM/CP_1619", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0010, 0x0223, 0x0010, 0x0223, + EVR_LO, "GeneticModificationsNomenclature", 1, 1, "DICOM/CP_1619", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0010, 0x0229, 0x0010, 0x0229, + EVR_SQ, "GeneticModificationsCodeSequence", 1, 1, "DICOM/CP_1619", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0010, 0x1000, 0x0010, 0x1000, EVR_LO, "OtherPatientIDs", 1, -1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -2102,6 +2166,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_SQ, "PatientSizeCodeSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0010, 0x1022, 0x0010, 0x1022, + EVR_DS, "PatientBodyMassIndex", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0010, 0x1023, 0x0010, 0x1023, + EVR_DS, "MeasuredAPDimension", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0010, 0x1024, 0x0010, 0x1024, + EVR_DS, "MeasuredLateralDimension", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0010, 0x1030, 0x0010, 0x1030, EVR_DS, "PatientWeight", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -2740,6 +2816,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_CS, "ConsentForDistributionFlag", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0012, 0x0086, 0x0012, 0x0086, + EVR_DA, "EthicsCommitteeApprovalEffectivenessStartDate", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0012, 0x0087, 0x0012, 0x0087, + EVR_DA, "EthicsCommitteeApprovalEffectivenessEndDate", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } #ifdef ENABLE_PRIVATE_TAGS , { 0x0013, 0x0000, 0x0013, 0x0000, EVR_LT, "ModifyingPhysician", 1, 1, "PrivateTag", @@ -3912,6 +3996,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_LO, "GantryID", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0018, 0x1009, 0x0018, 0x1009, + EVR_UT, "UniqueDeviceIdentifier", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x100a, 0x0018, 0x100a, + EVR_SQ, "UDISequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0018, 0x1010, 0x0018, 0x1010, EVR_LO, "SecondaryCaptureDeviceID", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -5885,7 +5977,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x0018, 0x9323, 0x0018, 0x9323, - EVR_CS, "ExposureModulationType", 1, 1, "DICOM", + EVR_CS, "ExposureModulationType", 1, -1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x0018, 0x9324, 0x0018, 0x9324, @@ -6628,6 +6720,242 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_xs, "ZeroVelocityPixelValue", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0018, 0x9900, 0x0018, 0x9900, + EVR_LO, "ReferenceLocationLabel", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9901, 0x0018, 0x9901, + EVR_UT, "ReferenceLocationDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9902, 0x0018, 0x9902, + EVR_SQ, "ReferenceBasisCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9903, 0x0018, 0x9903, + EVR_SQ, "ReferenceGeometryCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9904, 0x0018, 0x9904, + EVR_DS, "OffsetDistance", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9905, 0x0018, 0x9905, + EVR_CS, "OffsetDirection", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9906, 0x0018, 0x9906, + EVR_SQ, "PotentialScheduledProtocolCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9907, 0x0018, 0x9907, + EVR_SQ, "PotentialRequestedProcedureCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9908, 0x0018, 0x9908, + EVR_UC, "PotentialReasonsForProcedure", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9909, 0x0018, 0x9909, + EVR_SQ, "PotentialReasonsForProcedureCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990a, 0x0018, 0x990a, + EVR_UC, "PotentialDiagnosticTasks", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990b, 0x0018, 0x990b, + EVR_SQ, "ContraindicationsCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990c, 0x0018, 0x990c, + EVR_SQ, "ReferencedDefinedProtocolSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990d, 0x0018, 0x990d, + EVR_SQ, "ReferencedPerformedProtocolSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990e, 0x0018, 0x990e, + EVR_SQ, "PredecessorProtocolSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990f, 0x0018, 0x990f, + EVR_UT, "ProtocolPlanningInformation", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9910, 0x0018, 0x9910, + EVR_UT, "ProtocolDesignRationale", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9911, 0x0018, 0x9911, + EVR_SQ, "PatientSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9912, 0x0018, 0x9912, + EVR_SQ, "ModelSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9913, 0x0018, 0x9913, + EVR_SQ, "ParametersSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9914, 0x0018, 0x9914, + EVR_SQ, "InstructionSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9915, 0x0018, 0x9915, + EVR_US, "InstructionIndex", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9916, 0x0018, 0x9916, + EVR_LO, "InstructionText", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9917, 0x0018, 0x9917, + EVR_UT, "InstructionDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9918, 0x0018, 0x9918, + EVR_CS, "InstructionPerformedFlag", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9919, 0x0018, 0x9919, + EVR_DT, "InstructionPerformedDateTime", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991a, 0x0018, 0x991a, + EVR_UT, "InstructionPerformanceComment", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991b, 0x0018, 0x991b, + EVR_SQ, "PatientPositioningInstructionSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991c, 0x0018, 0x991c, + EVR_SQ, "PositioningMethodCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991d, 0x0018, 0x991d, + EVR_SQ, "PositioningLandmarkSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991e, 0x0018, 0x991e, + EVR_UI, "TargetFrameOfReferenceUID", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991f, 0x0018, 0x991f, + EVR_SQ, "AcquisitionProtocolElementSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9920, 0x0018, 0x9920, + EVR_SQ, "AcquisitionProtocolElementSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9921, 0x0018, 0x9921, + EVR_US, "ProtocolElementNumber", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9922, 0x0018, 0x9922, + EVR_LO, "ProtocolElementName", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9923, 0x0018, 0x9923, + EVR_UT, "ProtocolElementCharacteristicsSummary", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9924, 0x0018, 0x9924, + EVR_UT, "ProtocolElementPurpose", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9930, 0x0018, 0x9930, + EVR_CS, "AcquisitionMotion", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9931, 0x0018, 0x9931, + EVR_SQ, "AcquisitionStartLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9932, 0x0018, 0x9932, + EVR_SQ, "AcquisitionEndLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9933, 0x0018, 0x9933, + EVR_SQ, "ReconstructionProtocolElementSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9934, 0x0018, 0x9934, + EVR_SQ, "ReconstructionProtocolElementSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9935, 0x0018, 0x9935, + EVR_SQ, "StorageProtocolElementSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9936, 0x0018, 0x9936, + EVR_SQ, "StorageProtocolElementSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9937, 0x0018, 0x9937, + EVR_LO, "RequestedSeriesDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9938, 0x0018, 0x9938, + EVR_US, "SourceAcquisitionProtocolElementNumber", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9939, 0x0018, 0x9939, + EVR_US, "SourceAcquisitionBeamNumber", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993a, 0x0018, 0x993a, + EVR_US, "SourceReconstructionProtocolElementNumber", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993b, 0x0018, 0x993b, + EVR_SQ, "ReconstructionStartLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993c, 0x0018, 0x993c, + EVR_SQ, "ReconstructionEndLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993d, 0x0018, 0x993d, + EVR_SQ, "ReconstructionAlgorithmSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993e, 0x0018, 0x993e, + EVR_SQ, "ReconstructionTargetCenterLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9941, 0x0018, 0x9941, + EVR_UT, "ImageFilterDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9942, 0x0018, 0x9942, + EVR_FD, "CTDIvolNotificationTrigger", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9943, 0x0018, 0x9943, + EVR_FD, "DLPNotificationTrigger", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9944, 0x0018, 0x9944, + EVR_CS, "AutoKVPSelectionType", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9945, 0x0018, 0x9945, + EVR_FD, "AutoKVPUpperBound", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9946, 0x0018, 0x9946, + EVR_FD, "AutoKVPLowerBound", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9947, 0x0018, 0x9947, + EVR_CS, "ProtocolDefinedPatientPosition", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0018, 0xa001, 0x0018, 0xa001, EVR_SQ, "ContributingEquipmentSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -11050,6 +11378,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_LO, "RETIRED_Reference", 1, -1, "DICOM/retired", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0020, 0x103f, 0x0020, 0x103f, + EVR_LO, "TargetPositionReferenceIndicator", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0020, 0x1040, 0x0020, 0x1040, EVR_LO, "PositionReferenceIndicator", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -14916,6 +15248,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_OW, "SegmentedAlphaPaletteColorLookupTableData", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0028, 0x1230, 0x0028, 0x1230, + EVR_SQ, "StoredValueColorRangeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0028, 0x1231, 0x0028, 0x1231, + EVR_FD, "MinimumStoredValueMapped", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0028, 0x1232, 0x0028, 0x1232, + EVR_FD, "MaximumStoredValueMapped", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0028, 0x1300, 0x0028, 0x1300, EVR_CS, "BreastImplantPresent", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -20746,6 +21090,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_ST, "SegmentDescription", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0062, 0x0007, 0x0062, 0x0007, + EVR_SQ, "SegmentationAlgorithmIdentificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0062, 0x0008, 0x0062, 0x0008, EVR_CS, "SegmentAlgorithmType", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -21786,6 +22134,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_SQ, "FiducialSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0070, 0x031f, 0x0070, 0x031f, + EVR_SQ, "FiducialsPropertyCategoryCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0070, 0x0401, 0x0070, 0x0401, EVR_US, "GraphicLayerRecommendedDisplayCIELabValue", 3, 3, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -23074,6 +23426,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_UT, "ConstraintViolationCondition", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0082, 0x0038, 0x0082, 0x0038, + EVR_CS, "ModifiableConstraintFlag", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } #ifdef ENABLE_PRIVATE_TAGS , { 0x0087, 0x0010, 0x0087, 0x0010, EVR_CS, "MediaType", 1, 1, "PrivateTag", @@ -24757,7 +25113,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x3006, 0x00b9, 0x3006, 0x00b9, - EVR_SQ, "AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM", + EVR_SQ, "RETIRED_AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM/retired", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x3006, 0x00c0, 0x3006, 0x00c0, @@ -24936,6 +25292,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_ST, "OverrideReason", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x3008, 0x0067, 0x3008, 0x0067, + EVR_US, "ParameterValueNumber", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x3008, 0x0068, 0x3008, 0x0068, EVR_SQ, "CorrectedParameterSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -26516,6 +26876,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_FL, "IsocenterToRangeModulatorDistance", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x300a, 0x038f, 0x300a, 0x038f, + EVR_FL, "ScanSpotTimeOffset", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x300a, 0x0390, 0x300a, 0x0390, EVR_SH, "ScanSpotTuneID", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, diff --git a/dcmdata/libsrc/dcdirrec.cc b/dcmdata/libsrc/dcdirrec.cc index 982ecea5..fb9cc0c0 100644 --- a/dcmdata/libsrc/dcdirrec.cc +++ b/dcmdata/libsrc/dcdirrec.cc @@ -1124,22 +1124,20 @@ DcmEVR DcmDirectoryRecord::ident() const OFCondition DcmDirectoryRecord::convertCharacterSet(const OFString &fromCharset, const OFString &toCharset, - const OFBool transliterate, - const OFBool updateCharset, - const OFBool discardIllegal) + const size_t flags, + const OFBool updateCharset) { // call the method of the base class; this method is only needed to avoid a compiler warning - return DcmItem::convertCharacterSet(fromCharset, toCharset, transliterate, updateCharset, discardIllegal); + return DcmItem::convertCharacterSet(fromCharset, toCharset, flags, updateCharset); } OFCondition DcmDirectoryRecord::convertCharacterSet(const OFString &toCharset, - const OFBool transliterate, - const OFBool ignoreCharset, - const OFBool discardIllegal) + const size_t flags, + const OFBool ignoreCharset) { // call the method of the base class; this method is only needed to avoid a compiler warning - return DcmItem::convertCharacterSet(toCharset, transliterate, ignoreCharset, discardIllegal); + return DcmItem::convertCharacterSet(toCharset, flags, ignoreCharset); } @@ -1162,13 +1160,19 @@ OFCondition DcmDirectoryRecord::convertCharacterSet(DcmSpecificCharacterSet &con << fromCharset << "'" << (fromCharset.empty() ? " (ASCII)" : "") << " to '" << toCharset << "'" << (toCharset.empty() ? " (ASCII)" : "")); // select source and destination character set, use same transliteration mode - status = newConverter.selectCharacterSet(fromCharset, toCharset, converter.getTransliterationMode(), converter.getDiscardIllegalSequenceMode()); + status = newConverter.selectCharacterSet(fromCharset, toCharset); if (status.good()) { - // convert all affected element values in the item with the new converter - status = DcmItem::convertCharacterSet(newConverter); - // update the Specific Character Set (0008,0005) element - updateSpecificCharacterSet(status, newConverter); + const unsigned cflags = converter.getConversionFlags(); + if (cflags > 0) + status = newConverter.setConversionFlags(cflags); + if (status.good()) + { + // convert all affected element values in the item with the new converter + status = DcmItem::convertCharacterSet(newConverter); + // update the Specific Character Set (0008,0005) element + updateSpecificCharacterSet(status, newConverter); + } } } else { // no Specific Character Set attribute or the same character set, diff --git a/dcmdata/libsrc/dcelem.cc b/dcmdata/libsrc/dcelem.cc index 2b577153..a682403e 100644 --- a/dcmdata/libsrc/dcelem.cc +++ b/dcmdata/libsrc/dcelem.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,7 @@ #include "dcmtk/ofstd/ofstd.h" #include "dcmtk/ofstd/ofstream.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcelem.h" #include "dcmtk/dcmdata/dcobject.h" #include "dcmtk/dcmdata/dcswap.h" @@ -845,12 +846,18 @@ OFCondition DcmElement::changeValue(const void *value, } } } else { - // swap to local byte order - swapIfNecessary(gLocalByteOrder, fByteOrder, fValue, - getLengthField(), getTag().getVR().getValueWidth()); - // copy value at given position - memcpy(&fValue[position], OFstatic_cast(const Uint8 *, value), size_t(num)); - fByteOrder = gLocalByteOrder; + // load value (if not loaded yet) + if (!fValue) + errorFlag = loadValue(); + if (errorFlag.good()) + { + // swap to local byte order + swapIfNecessary(gLocalByteOrder, fByteOrder, fValue, + getLengthField(), getTag().getVR().getValueWidth()); + // copy value at given position + memcpy(&fValue[position], OFstatic_cast(const Uint8 *, value), size_t(num)); + fByteOrder = gLocalByteOrder; + } } return errorFlag; } @@ -1567,6 +1574,81 @@ OFCondition DcmElement::writeXML(STD_NAMESPACE ostream &out, // ******************************** +void DcmElement::writeJsonOpener(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + DcmVR vr(getTag().getVR()); + DcmTag tag = getTag(); + /* increase indention level */ + /* write attribute tag */ + out << ++format.indent() << "\"" + << STD_NAMESPACE hex << STD_NAMESPACE setfill('0') + << STD_NAMESPACE setw(4) << tag.getGTag(); + /* write "ggggeeee" (no comma, upper case!) */ + /* for private element numbers, zero out 2 first element digits */ + /* or output full element number "eeee" */ + out << STD_NAMESPACE setw(4) << STD_NAMESPACE uppercase << tag.getETag() << "\":" + << format.space() << "{" << STD_NAMESPACE dec << STD_NAMESPACE setfill(' '); + out << STD_NAMESPACE nouppercase; + /* increase indention level */ + /* value representation = VR */ + out << format.newline() << ++format.indent() << "\"vr\":" << format.space() << "\"" + << vr.getValidVRName() << "\""; +} + + +void DcmElement::writeJsonCloser(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* output JSON ending and decrease indention level */ + out << format.newline() << --format.indent() << "}"; + --format.indent(); +} + + +OFCondition DcmElement::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + writeJsonOpener(out, format); + /* write element value (if non-empty) */ + if (!isEmpty()) + { + OFString value; + if (format.asBulkDataURI(getTag(), value)) + { + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, value); + } + else + { + OFCondition status = getOFString(value, 0L); + if (status.bad()) + return status; + format.printValuePrefix(out); + DcmJsonFormat::printNumberDecimal(out, value); + const unsigned long vm = getVM(); + for (unsigned long valNo = 1; valNo < vm; ++valNo) + { + status = getOFString(value, valNo); + if (status.bad()) + return status; + format.printNextArrayElementPrefix(out); + DcmJsonFormat::printNumberDecimal(out, value); + } + format.printValueSuffix(out); + } + } + /* write JSON Closer */ + writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} + + +// ******************************** + + OFCondition DcmElement::getPartialValue(void *targetBuffer, const Uint32 offset, Uint32 numBytes, diff --git a/dcmdata/libsrc/dcerror.cc b/dcmdata/libsrc/dcerror.cc index 5186c12b..0fc70e34 100644 --- a/dcmdata/libsrc/dcerror.cc +++ b/dcmdata/libsrc/dcerror.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -73,6 +73,10 @@ makeOFConditionConst(EC_MissingAttribute, OFM_dcmdata, 47, OF_err makeOFConditionConst(EC_InternalError, OFM_dcmdata, 48, OF_error, "Internal error"); makeOFConditionConst(EC_InvalidCharacter, OFM_dcmdata, 49, OF_error, "Invalid character"); // error code 50 is reserved for determine start fragment error messages (see below) +makeOFConditionConst(EC_UndefinedLengthOBOW, OFM_dcmdata, 51, OF_error, "Illegal element with OB or OW Value Representation and undefined length encountered"); +makeOFConditionConst(EC_VOI_LUT_OBOW, OFM_dcmdata, 52, OF_error, "Illegal VOI LUT Sequence element with OB or OW Value Representation and explicit length encountered"); +makeOFConditionConst(EC_PixelDataExplLengthIllegal, OFM_dcmdata, 53, OF_error, "Pixel data in top level dataset in compressed Transfer Syntax uses explicit length"); + const unsigned short EC_CODE_CannotSelectCharacterSet = 35; const unsigned short EC_CODE_CannotConvertCharacterSet = 36; diff --git a/dcmdata/libsrc/dcfilefo.cc b/dcmdata/libsrc/dcfilefo.cc index b757820a..f12bbb55 100644 --- a/dcmdata/libsrc/dcfilefo.cc +++ b/dcmdata/libsrc/dcfilefo.cc @@ -48,6 +48,7 @@ #include "dcmtk/dcmdata/dcistrma.h" /* for class DcmInputStream */ #include "dcmtk/dcmdata/dcistrmf.h" /* for class DcmInputFileStream */ #include "dcmtk/dcmdata/dcwcache.h" /* for class DcmWriteCache */ +#include "dcmtk/dcmdata/dcjson.h" // ******************************** @@ -227,6 +228,55 @@ OFCondition DcmFileFormat::writeXML(STD_NAMESPACE ostream &out, // ******************************** +OFCondition DcmFileFormat::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + if (format.printMetaheaderInformation) + { + if (!itemList->empty()) + { + out << format.indent() << "{" << format.newline(); + // write content of all children (DcmObject) + itemList->seek(ELP_first); + OFCondition status = EC_Normal; + status = itemList->get()->writeJson(out, format); + while (status.good() && itemList->seek(ELP_next)) + { + out << "," << format.newline(); + status = itemList->get()->writeJson(out, format); + } + out << format.newline() << format.indent() << "}" << format.newline(); + return status; + } + else + { + return EC_CorruptedData; + } + } + else + { + if (DcmDataset *dset = getDataset()) + { + out << format.indent() << "{" << format.newline(); + OFCondition status = EC_Normal; + // write content of dataset + status = dset->writeJson(out, format); + out << format.newline() << format.indent() << "}" << format.newline(); + return status; + } + else + { + out << format.indent() << "{}" << format.newline(); + return EC_Normal; + } + } + return EC_Normal; +} + + +// ******************************** + + OFCondition DcmFileFormat::checkMetaHeaderValue(DcmMetaInfo *metainfo, DcmDataset *dataset, const DcmTagKey &atagkey, @@ -1013,17 +1063,15 @@ DcmDataset *DcmFileFormat::getAndRemoveDataset() OFCondition DcmFileFormat::convertCharacterSet(const OFString &fromCharset, const OFString &toCharset, - const OFBool transliterate, - const OFBool discardIllegal) + const size_t flags) { // convert the dataset associated with this object - return getDataset()->convertCharacterSet(fromCharset, toCharset, transliterate, discardIllegal); + return getDataset()->convertCharacterSet(fromCharset, toCharset, flags); } OFCondition DcmFileFormat::convertCharacterSet(const OFString &toCharset, - const OFBool transliterate, - const OFBool discardIllegal) + const size_t flags) { OFString sopClass; OFBool ignoreCharset = OFFalse; @@ -1037,7 +1085,7 @@ OFCondition DcmFileFormat::convertCharacterSet(const OFString &toCharset, ignoreCharset = OFTrue; } // usually, we check for Specific Character Set (0008,0005) element in the dataset - return getDataset()->convertCharacterSet(toCharset, transliterate, ignoreCharset, discardIllegal); + return getDataset()->convertCharacterSet(toCharset, flags, ignoreCharset); } @@ -1051,5 +1099,5 @@ OFCondition DcmFileFormat::convertCharacterSet(DcmSpecificCharacterSet &converte OFCondition DcmFileFormat::convertToUTF8() { // the DICOM defined term "ISO_IR 192" is used for "UTF-8" - return convertCharacterSet("ISO_IR 192", OFFalse /*transliterate*/); + return convertCharacterSet("ISO_IR 192", 0 /*flags*/); } diff --git a/dcmdata/libsrc/dcitem.cc b/dcmdata/libsrc/dcitem.cc index c832ab41..3e480353 100644 --- a/dcmdata/libsrc/dcitem.cc +++ b/dcmdata/libsrc/dcitem.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -70,13 +70,13 @@ #include "dcmtk/dcmdata/dcvrut.h" #include "dcmtk/dcmdata/dcxfer.h" #include "dcmtk/dcmdata/dcspchrs.h" /* for class DcmSpecificCharacterSet */ +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/ofstd/ofstream.h" #include "dcmtk/ofstd/ofstring.h" #include "dcmtk/ofstd/ofcast.h" #include "dcmtk/ofstd/ofstd.h" - // ******************************** @@ -533,6 +533,34 @@ OFCondition DcmItem::writeXML(STD_NAMESPACE ostream &out, // ******************************** +OFCondition DcmItem::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + if (!elementList->empty()) + { + // write content of all children + out << "{" << format.newline(); + elementList->seek(ELP_first); + OFCondition status = EC_Normal; + status = elementList->get()->writeJson(out, format); + while (status.good() && elementList->seek(ELP_next)) + { + out << "," << format.newline(); + status = elementList->get()->writeJson(out, format); + } + out << format.newline() << format.indent() << "}"; + return status; + } + else + { + out << "{}" << format.newline(); + } + return EC_Normal; +} + +// ******************************** + + OFBool DcmItem::canWriteXfer(const E_TransferSyntax newXfer, const E_TransferSyntax oldXfer) { @@ -1094,6 +1122,7 @@ OFCondition DcmItem::readTagAndLength(DcmInputStream &inStream, DCMDATA_WARN("DcmItem: Length of element " << newTag << " is odd"); } + /* if desired, handle private attributes with maximum length as VR SQ */ if (isPrivate && dcmReadImplPrivAttribMaxLengthAsSQ.get() && (valueLength == DCM_UndefinedLength)) { @@ -1158,7 +1187,7 @@ OFCondition DcmItem::readSubElement(DcmInputStream &inStream, /* create a new DcmElement* object with corresponding tag and */ /* length; the object will be accessible through subElem */ OFBool readAsUN = OFFalse; - OFCondition l_error = newDicomElement(subElem, newTag, newLength, &privateCreatorCache, readAsUN); + OFCondition l_error = DcmItem::newDicomElement(subElem, newTag, newLength, &privateCreatorCache, readAsUN); /* if no error occurred and subElem does not equal NULL, go ahead */ if (l_error.good() && subElem != NULL) @@ -1196,6 +1225,14 @@ OFCondition DcmItem::readSubElement(DcmInputStream &inStream, inStream.putback(); DCMDATA_WARN("DcmItem: Parse error while parsing element " << newTag); } + else if (l_error == EC_UndefinedLengthOBOW) + { + // do nothing + } + else if (l_error == EC_VOI_LUT_OBOW) + { + // do nothing + } else if (l_error != EC_ItemEnd) { // inStream.UnsetPutbackMark(); // not needed anymore with new stream architecture @@ -2161,255 +2198,6 @@ void DcmItem::compactElements(const Uint32 maxLength) // Support functions -OFCondition newDicomElement(DcmElement *&newElement, - const DcmTag &tag, - const Uint32 length) -{ - DcmTag newTag(tag); - OFBool readAsUN = OFFalse; - return newDicomElement(newElement, newTag, length, NULL, readAsUN); -} - -DcmElement *newDicomElement(const DcmTag &tag, - const Uint32 length) -{ - DcmElement *newElement = NULL; - newDicomElement(newElement, tag, length); - return newElement; -} - - -// ******************************** - - -OFCondition newDicomElement(DcmElement *&newElement, - DcmTag &tag, - const Uint32 length, - DcmPrivateTagCache *privateCreatorCache, - OFBool& readAsUN) -{ - /* initialize variables */ - OFCondition l_error = EC_Normal; - newElement = NULL; - DcmEVR evr = tag.getEVR(); - readAsUN = OFFalse; - - /* revert UN elements with finite length back to known VR if possible */ - if ((evr == EVR_UN) && (length != DCM_UndefinedLength) && dcmEnableUnknownVRConversion.get()) - { - /* look up VR in data dictionary */ - DcmTag newTag(tag.getGroup(), tag.getElement()); - - /* special handling for private elements */ - if (privateCreatorCache && (newTag.getGroup() & 1) && (newTag.getElement() >= 0x1000)) - { - const char *pc = privateCreatorCache->findPrivateCreator(newTag); - if (pc != NULL) - { - // we have a private creator for this element - newTag.setPrivateCreator(pc); - newTag.lookupVRinDictionary(); - } - } - - /* update VR for tag, set "readAsUN" flag that makes sure the element value - * is read in Little Endian Implicit VR (i.e. the UN encoding) - */ - if (newTag.getEVR() != EVR_UNKNOWN) - { - tag.setVR(newTag.getVR()); - evr = tag.getEVR(); - readAsUN = OFTrue; - } - } - - /* depending on the VR of the tag which was passed, create the new object */ - switch (evr) - { - // byte strings: - case EVR_AE : - newElement = new DcmApplicationEntity(tag, length); - break; - case EVR_AS : - newElement = new DcmAgeString(tag, length); - break; - case EVR_CS : - newElement = new DcmCodeString(tag, length); - break; - case EVR_DA : - newElement = new DcmDate(tag, length); - break; - case EVR_DS : - newElement = new DcmDecimalString(tag, length); - break; - case EVR_DT : - newElement = new DcmDateTime(tag, length); - break; - case EVR_IS : - newElement = new DcmIntegerString(tag, length); - break; - case EVR_TM : - newElement = new DcmTime(tag, length); - break; - case EVR_UI : - newElement = new DcmUniqueIdentifier(tag, length); - break; - case EVR_UR: - newElement = new DcmUniversalResourceIdentifierOrLocator(tag, length); - break; - - // character strings: - case EVR_LO : - newElement = new DcmLongString(tag, length); - break; - case EVR_LT : - newElement = new DcmLongText(tag, length); - break; - case EVR_PN : - newElement = new DcmPersonName(tag, length); - break; - case EVR_SH : - newElement = new DcmShortString(tag, length); - break; - case EVR_ST : - newElement = new DcmShortText(tag, length); - break; - case EVR_UC: - newElement = new DcmUnlimitedCharacters(tag, length); - break; - case EVR_UT: - newElement = new DcmUnlimitedText(tag, length); - break; - - // dependent on byte order: - case EVR_AT : - newElement = new DcmAttributeTag(tag, length); - break; - case EVR_SS : - newElement = new DcmSignedShort(tag, length); - break; - case EVR_xs : // according to DICOM standard - case EVR_US : - newElement = new DcmUnsignedShort(tag, length); - break; - case EVR_SL : - newElement = new DcmSignedLong(tag, length); - break; - case EVR_up : // for (0004,eeee) according to DICOM standard - case EVR_UL : - { - // generate tag with VR from dictionary! - DcmTag ulupTag(tag.getXTag()); - if (ulupTag.getEVR() == EVR_up) - newElement = new DcmUnsignedLongOffset(ulupTag, length); - else - newElement = new DcmUnsignedLong(tag, length); - } - break; - case EVR_OL : - newElement = new DcmOtherLong(tag, length); - break; - case EVR_FL : - newElement = new DcmFloatingPointSingle(tag, length); - break; - case EVR_FD : - newElement = new DcmFloatingPointDouble(tag, length); - break; - case EVR_OF : - newElement = new DcmOtherFloat(tag, length); - break; - case EVR_OD : - newElement = new DcmOtherDouble(tag, length); - break; - - // sequences and items: - case EVR_SQ : - newElement = new DcmSequenceOfItems(tag, length); - break; - case EVR_na : - if (tag.getXTag() == DCM_Item) - l_error = EC_InvalidTag; - else if (tag.getXTag() == DCM_SequenceDelimitationItem) - l_error = EC_SequEnd; - else if (tag.getXTag() == DCM_ItemDelimitationItem) - l_error = EC_ItemEnd; - else - l_error = EC_InvalidTag; - break; - - // pixel sequences (EVR_pixelSQ) are handled through class DcmPixelData - // and should never appear here. - - // unclear 8 or 16 bit: - case EVR_ox : - if (tag == DCM_PixelData) - newElement = new DcmPixelData(tag, length); - else if (tag.getBaseTag() == DCM_OverlayData) - newElement = new DcmOverlayData(tag, length); - else - /* we don't know this element's real transfer syntax, so we just - * use the defaults of class DcmOtherByteOtherWord and let the - * application handle it. - */ - newElement = new DcmOtherByteOtherWord(tag, length); - break; - - case EVR_lt : - newElement = new DcmOtherByteOtherWord(tag, length); - break; - - case EVR_OB : - case EVR_OW : - if (tag == DCM_PixelData) - newElement = new DcmPixelData(tag, length); - else if (tag.getBaseTag() == DCM_OverlayData) - newElement = new DcmOverlayData(tag, length); - else - if (length == DCM_UndefinedLength) - { - // The attribute is OB or OW but is encoded with undefined - // length. Assume it is really a sequence so that we can - // catch the sequence delimitation item. - newElement = new DcmSequenceOfItems(tag, length); - } else { - newElement = new DcmOtherByteOtherWord(tag, length); - } - break; - - // read unknown types as byte string: - case EVR_UNKNOWN : - case EVR_UNKNOWN2B : - case EVR_UN : - default : - if (length == DCM_UndefinedLength) - { - // The attribute VR is UN with undefined length. Assume it is really - // a sequence so that we can catch the sequence delimitation item. - DcmTag newTag(tag); - newTag.setVR(DcmVR(EVR_SQ)); // on writing we will handle this element as SQ, not UN - if (dcmEnableCP246Support.get()) - { - DCMDATA_WARN("Found element " << newTag << " with VR UN and undefined length, " - << "reading a sequence with transfer syntax LittleEndianImplicit (CP-246)"); - } else { - DCMDATA_WARN("Found element " << newTag << " with VR UN and undefined length"); - } - newElement = new DcmSequenceOfItems(newTag, length, dcmEnableCP246Support.get()); - } else { - // defined length UN element, treat like OB - newElement = new DcmOtherByteOtherWord(tag, length); - } - break; - } - - /* check for valid element pointer */ - if (l_error.good() && (newElement == NULL)) - l_error = EC_MemoryExhausted; - - /* return result value */ - return l_error; -} - OFCondition nextUp(DcmStack &stack) { @@ -4319,9 +4107,8 @@ void DcmItem::updateSpecificCharacterSet(OFCondition &status, OFCondition DcmItem::convertCharacterSet(const OFString &fromCharset, const OFString &toCharset, - const OFBool transliterate, - const OFBool updateCharset, - const OFBool discardIllegal) + const size_t flags, + const OFBool updateCharset) { OFCondition status = EC_Normal; // if the item is empty, there is nothing to do @@ -4333,15 +4120,26 @@ OFCondition DcmItem::convertCharacterSet(const OFString &fromCharset, << fromCharset << "'" << (fromCharset.empty() ? " (ASCII)" : "") << " to '" << toCharset << "'" << (toCharset.empty() ? " (ASCII)" : "")); // select source and destination character set - status = converter.selectCharacterSet(fromCharset, toCharset, transliterate, discardIllegal); + status = converter.selectCharacterSet(fromCharset, toCharset); if (status.good()) { - // convert all affected element values in the item - status = convertCharacterSet(converter); - if (updateCharset) + unsigned cflags = 0; + /* pass flags to underlying implementation */ + if (flags & DCMTypes::CF_discardIllegal) + cflags |= OFCharacterEncoding::DiscardIllegalSequences; + if (flags & DCMTypes::CF_transliterate) + cflags |= OFCharacterEncoding::TransliterateIllegalSequences; + if (cflags > 0) + status = converter.setConversionFlags(cflags); + if (status.good()) { - // update the Specific Character Set (0008,0005) element - updateSpecificCharacterSet(status, converter); + // convert all affected element values in the item + status = convertCharacterSet(converter); + if (updateCharset) + { + // update the Specific Character Set (0008,0005) element + updateSpecificCharacterSet(status, converter); + } } } } @@ -4350,9 +4148,8 @@ OFCondition DcmItem::convertCharacterSet(const OFString &fromCharset, OFCondition DcmItem::convertCharacterSet(const OFString &toCharset, - const OFBool transliterate, - const OFBool ignoreCharset, - const OFBool discardIllegal) + const size_t flags, + const OFBool ignoreCharset) { OFString fromCharset; // check whether this item can contain the attribute SpecificCharacterSet (0008,0005) @@ -4362,7 +4159,7 @@ OFCondition DcmItem::convertCharacterSet(const OFString &toCharset, findAndGetOFStringArray(DCM_SpecificCharacterSet, fromCharset, OFFalse /*searchIntoSub*/); } // do the real work, if Specific Character Set is missing or empty use the default (ASCII) - return convertCharacterSet(fromCharset, toCharset, transliterate, !ignoreCharset /*updateCharset*/, discardIllegal); + return convertCharacterSet(fromCharset, toCharset, flags, !ignoreCharset /*updateCharset*/); } @@ -4385,5 +4182,313 @@ OFCondition DcmItem::convertCharacterSet(DcmSpecificCharacterSet &converter) OFCondition DcmItem::convertToUTF8() { // the DICOM defined term "ISO_IR 192" is used for "UTF-8" - return convertCharacterSet("ISO_IR 192", OFFalse /*transliterate*/); + return convertCharacterSet("ISO_IR 192", 0 /*flags*/); +} + + +// ******************************** + + +DcmElement* DcmItem::newDicomElement(const DcmTagKey& tag) +{ + DcmTag temp(tag); + DcmElement* elem = NULL; + OFBool readAsUN = OFFalse; + newDicomElement( + elem, + temp, + 0, // Length + NULL, // Private creator + readAsUN); // read as VR UN (result ignored) + return elem; +} + + +OFCondition DcmItem::newDicomElement(DcmElement*& newElement, + const DcmTagKey& tag) +{ + DcmTag temp(tag); + newElement = NULL; + OFBool readAsUN = OFFalse; + return newDicomElement( + newElement, + temp, + 0, // Length + NULL, // Private creator + readAsUN); // read as VR UN (result ignored) +} + + +OFCondition DcmItem::newDicomElement(DcmElement *&newElement, + DcmTag &tag, + const Uint32 length, + DcmPrivateTagCache *privateCreatorCache, + OFBool& readAsUN) +{ + /* initialize variables */ + OFCondition l_error = EC_Normal; + newElement = NULL; + DcmEVR evr = tag.getEVR(); + readAsUN = OFFalse; + + /* revert UN elements with finite length back to known VR if possible */ + if ((evr == EVR_UN) && (length != DCM_UndefinedLength) && dcmEnableUnknownVRConversion.get()) + { + /* look up VR in data dictionary */ + DcmTag newTag(tag.getGroup(), tag.getElement()); + + /* special handling for private elements */ + if (privateCreatorCache && (newTag.getGroup() & 1) && (newTag.getElement() >= 0x1000)) + { + const char *pc = privateCreatorCache->findPrivateCreator(newTag); + if (pc != NULL) + { + // we have a private creator for this element + newTag.setPrivateCreator(pc); + newTag.lookupVRinDictionary(); + } + } + + /* update VR for tag, set "readAsUN" flag that makes sure the element value + * is read in Little Endian Implicit VR (i.e. the UN encoding) + */ + if (newTag.getEVR() != EVR_UNKNOWN) + { + tag.setVR(newTag.getVR()); + evr = tag.getEVR(); + readAsUN = OFTrue; + } + } + + /* depending on the VR of the tag which was passed, create the new object */ + switch (evr) + { + // byte strings: + case EVR_AE : + newElement = new DcmApplicationEntity(tag, length); + break; + case EVR_AS : + newElement = new DcmAgeString(tag, length); + break; + case EVR_CS : + newElement = new DcmCodeString(tag, length); + break; + case EVR_DA : + newElement = new DcmDate(tag, length); + break; + case EVR_DS : + newElement = new DcmDecimalString(tag, length); + break; + case EVR_DT : + newElement = new DcmDateTime(tag, length); + break; + case EVR_IS : + newElement = new DcmIntegerString(tag, length); + break; + case EVR_TM : + newElement = new DcmTime(tag, length); + break; + case EVR_UI : + newElement = new DcmUniqueIdentifier(tag, length); + break; + case EVR_UR: + newElement = new DcmUniversalResourceIdentifierOrLocator(tag, length); + break; + + // character strings: + case EVR_LO : + newElement = new DcmLongString(tag, length); + break; + case EVR_LT : + newElement = new DcmLongText(tag, length); + break; + case EVR_PN : + newElement = new DcmPersonName(tag, length); + break; + case EVR_SH : + newElement = new DcmShortString(tag, length); + break; + case EVR_ST : + newElement = new DcmShortText(tag, length); + break; + case EVR_UC: + newElement = new DcmUnlimitedCharacters(tag, length); + break; + case EVR_UT: + newElement = new DcmUnlimitedText(tag, length); + break; + + // dependent on byte order: + case EVR_AT : + newElement = new DcmAttributeTag(tag, length); + break; + case EVR_SS : + newElement = new DcmSignedShort(tag, length); + break; + case EVR_xs : // according to DICOM standard + case EVR_US : + newElement = new DcmUnsignedShort(tag, length); + break; + case EVR_SL : + newElement = new DcmSignedLong(tag, length); + break; + case EVR_up : // for (0004,eeee) according to DICOM standard + case EVR_UL : + { + // generate tag with VR from dictionary! + DcmTag ulupTag(tag.getXTag()); + if (ulupTag.getEVR() == EVR_up) + newElement = new DcmUnsignedLongOffset(ulupTag, length); + else + newElement = new DcmUnsignedLong(tag, length); + } + break; + case EVR_OL : + newElement = new DcmOtherLong(tag, length); + break; + case EVR_FL : + newElement = new DcmFloatingPointSingle(tag, length); + break; + case EVR_FD : + newElement = new DcmFloatingPointDouble(tag, length); + break; + case EVR_OF : + newElement = new DcmOtherFloat(tag, length); + break; + case EVR_OD : + newElement = new DcmOtherDouble(tag, length); + break; + + // sequences and items: + case EVR_SQ : + newElement = new DcmSequenceOfItems(tag, length); + break; + case EVR_na : + if (tag.getXTag() == DCM_Item) + l_error = EC_InvalidTag; + else if (tag.getXTag() == DCM_SequenceDelimitationItem) + l_error = EC_SequEnd; + else if (tag.getXTag() == DCM_ItemDelimitationItem) + l_error = EC_ItemEnd; + else + l_error = EC_InvalidTag; + break; + + // pixel sequences (EVR_pixelSQ) are handled through class DcmPixelData + // and should never appear here. + + // unclear 8 or 16 bit: + case EVR_ox : + if (tag == DCM_PixelData) + newElement = new DcmPixelData(tag, length); + else if (tag.getBaseTag() == DCM_OverlayData) + newElement = new DcmOverlayData(tag, length); + else + /* we don't know this element's real transfer syntax, so we just + * use the defaults of class DcmOtherByteOtherWord and let the + * application handle it. + */ + newElement = new DcmOtherByteOtherWord(tag, length); + break; + + case EVR_lt : + newElement = new DcmOtherByteOtherWord(tag, length); + break; + + case EVR_OB : + case EVR_OW : + if (tag == DCM_PixelData) + newElement = new DcmPixelData(tag, length); + else if (tag.getBaseTag() == DCM_OverlayData) + newElement = new DcmOverlayData(tag, length); + else if ((tag == DCM_VOILUTSequence) && (length != DCM_UndefinedLength)) + { + // this is an incorrectly encoded VOI LUT Sequence. + // Real-world examples of this issue have been reported in 2016. + if (dcmConvertVOILUTSequenceOWtoSQ.get()) + { + // Silently fix the error by interpreting as a sequence. + DcmTag newTag(tag); + newTag.setVR(DcmVR(EVR_SQ)); // on writing we will handle this element as SQ, not OB/OW + newElement = new DcmSequenceOfItems(newTag, length); + } else { + + if (dcmIgnoreParsingErrors.get()) + { + // ignore parse error, keep VR unchanged + DCMDATA_WARN("DcmItem: VOI LUT Sequence with VR=OW and explicit length encountered."); + newElement = new DcmOtherByteOtherWord(tag, length); + } + else + { + // bail out with an error + DCMDATA_ERROR("DcmItem: VOI LUT Sequence with VR=OW and explicit length encountered."); + l_error = EC_VOI_LUT_OBOW; + } + } + } + else + if (length == DCM_UndefinedLength) + { + // The attribute is OB or OW but is encoded with undefined + // length, and it is not Pixel Data. This is illegal. + if (dcmConvertUndefinedLengthOBOWtoSQ.get()) + { + // Assume that this is in fact a sequence so that we can + // catch the sequence delimitation item. + DcmTag newTag(tag); + newTag.setVR(DcmVR(EVR_SQ)); // on writing we will handle this element as SQ, not OB/OW + newElement = new DcmSequenceOfItems(newTag, length); + } else { + if (dcmIgnoreParsingErrors.get()) + { + // ignore parse error, keep VR unchanged + OFCondition tempcond = EC_UndefinedLengthOBOW; + DCMDATA_WARN("DcmItem: Parse error in " << tag << ": " << tempcond.text()); + newElement = new DcmSequenceOfItems(tag, length); + } + else + { + // bail out with an error + l_error = EC_UndefinedLengthOBOW; + DCMDATA_ERROR("DcmItem: Parse error in " << tag << ": " << l_error.text()); + } + } + } else { + newElement = new DcmOtherByteOtherWord(tag, length); + } + break; + + // read unknown types as byte string: + case EVR_UNKNOWN : + case EVR_UNKNOWN2B : + case EVR_UN : + default : + if (length == DCM_UndefinedLength) + { + // The attribute VR is UN with undefined length. Assume it is really + // a sequence so that we can catch the sequence delimitation item. + DcmTag newTag(tag); + newTag.setVR(DcmVR(EVR_SQ)); // on writing we will handle this element as SQ, not UN + if (dcmEnableCP246Support.get()) + { + DCMDATA_WARN("Found element " << newTag << " with VR UN and undefined length, " + << "reading a sequence with transfer syntax LittleEndianImplicit (CP-246)"); + } else { + DCMDATA_WARN("Found element " << newTag << " with VR UN and undefined length"); + } + newElement = new DcmSequenceOfItems(newTag, length, dcmEnableCP246Support.get()); + } else { + // defined length UN element, treat like OB + newElement = new DcmOtherByteOtherWord(tag, length); + } + break; + } + + /* check for valid element pointer */ + if (l_error.good() && (newElement == NULL)) + l_error = EC_MemoryExhausted; + + /* return result value */ + return l_error; } diff --git a/dcmdata/libsrc/dcjson.cc b/dcmdata/libsrc/dcjson.cc new file mode 100644 index 00000000..df68daa4 --- /dev/null +++ b/dcmdata/libsrc/dcjson.cc @@ -0,0 +1,281 @@ +/* + * + * Copyright (C) 2016-2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * Module: dcmdata + * + * Author: Sebastian Grallert + * + * Purpose: Providing basic JSON formatting functionalities + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/dcmdata/dcjson.h" + +#define INCLUDE_CASSERT +#define INCLUDE_CSTRING +#include "dcmtk/ofstd/ofstdinc.h" + +#include "dcmtk/ofstd/ofdefine.h" +#include "dcmtk/ofstd/ofstring.h" + +void DcmJsonFormat::escapeControlCharacters(STD_NAMESPACE ostream &out, const OFString &value) +{ + // escapes all forbidden control characters in JSON + for (size_t i = 0; i < value.size(); ++i) + { + const char c = value.at(i); + switch (c) + { + case '\\': + out << "\\\\"; + break; + case '"': + out << "\\\""; + break; + case '\b': + out << "\\b"; + break; + case '\n': + out << "\\n"; + break; + case '\r': + out << "\\r"; + break; + case '\t': + out << "\\t"; + break; + case '\f': + out << "\\f"; + break; + default: + //escapes all other control characters + if (c >= '\0' && c < ' ') + { + out << "\\u" << STD_NAMESPACE hex + << STD_NAMESPACE setw(4) << STD_NAMESPACE setfill('0') + << OFstatic_cast(unsigned, OFstatic_cast(unsigned char, c)); + } + else + { + out << c; + } + } + } +} + +// Formats the number to JSON standard as DecimalString +void DcmJsonFormat::normalizeDecimalString(OFString &value) +{ + OFBool minus = OFFalse; + + if (value[0] == '-') + { + value = value.substr(1); + minus = OFTrue; + } + + size_t pos = value.find_first_not_of("0"); + + if (pos == OFString_npos) + value = "0"; + else + { + if (value[pos] == '.') + value = '0' + value.substr(pos); + else + value = value.substr(pos); + } + + if (minus) + value = '-' + value; +} + +// Formats the number to JSON standard as IntegerString +void DcmJsonFormat::normalizeIntegerString(OFString &value) +{ + OFBool minus = OFFalse; + + if (value[0] == '-') + { + value = value.substr(1); + minus = OFTrue; + } + + size_t pos = value.find_first_not_of("0"); + + if (pos == OFString_npos) + value = "0"; + else + value = value.substr(pos); + + if (minus) + value = '-' + value; +} + +// Print a string in JSON format +void DcmJsonFormat::printString(STD_NAMESPACE ostream &out, + const OFString &value) +{ + out << "\""; + escapeControlCharacters(out, value); + out << "\""; +} + +// Print a string in JSON format +// Print null if OFString is empty +void DcmJsonFormat::printValueString(STD_NAMESPACE ostream &out, + const OFString &value) +{ + if (!value.empty()) + { + printString(out, value); + } + else + { + out << "null"; + } +} + +// Print a integer in JSON format +// Print null if OFString is empty +void DcmJsonFormat::printNumberInteger(STD_NAMESPACE ostream &out, + OFString &value) +{ + if (!value.empty()) + { + normalizeIntegerString(value); + out << value; + } + else + { + out << "null"; + } +} + +// Print a decimal in JSON format +// Print null if OFString is empty +void DcmJsonFormat::printNumberDecimal(STD_NAMESPACE ostream &out, + OFString &value) +{ + if (!value.empty()) + { + normalizeDecimalString(value); + out << value; + } + else + { + out << "null"; + } +} + +// Print the prefix for Value +void DcmJsonFormat::printValuePrefix(STD_NAMESPACE ostream &out) +{ + out << "," << newline() << indent() << "\"Value\":" << space() << "[" << newline(); + out << ++indent(); +} + +// Print the suffix for Value +void DcmJsonFormat::printValueSuffix(STD_NAMESPACE ostream &out) +{ + out << newline() << --indent() << "]"; +} + +// Print the prefix for BulkDataURI +void DcmJsonFormat::printBulkDataURIPrefix(STD_NAMESPACE ostream &out) +{ + out << "," << newline() << indent() << "\"BulkDataURI\":" << space(); +} + +// Print the prefix for InlineBinary +void DcmJsonFormat::printInlineBinaryPrefix(STD_NAMESPACE ostream &out) +{ + out << "," << newline() << indent() << "\"InlineBinary\":" << space(); +} + +// Print the prefix for array elements in JSON format +void DcmJsonFormat::printNextArrayElementPrefix(STD_NAMESPACE ostream &out) +{ + out << "," << newline() << indent(); +} + +// Method for holding and determine if BulkDataURI should be printed. +// This also manipulate uri String, if BulkDataURI should be printed. +OFBool DcmJsonFormat::asBulkDataURI(const DcmTagKey& tag, OFString& uri) +{ + return false; +} + +//Class for formatted output +DcmJsonFormatPretty::DcmJsonFormatPretty(const OFBool printMetaheaderInformation) +: DcmJsonFormat(printMetaheaderInformation) +, m_IndentionLevel(0) +{ + +} + +void DcmJsonFormatPretty::printIndention(STD_NAMESPACE ostream& out) +{ + for (unsigned ui = 0; ui < m_IndentionLevel; ++ui) + out << " "; +} + +void DcmJsonFormatPretty::increaseIndention() +{ + ++m_IndentionLevel; +} + +void DcmJsonFormatPretty::decreaseIndention() +{ + assert(m_IndentionLevel); + --m_IndentionLevel; +} + +OFString DcmJsonFormatPretty::newline() +{ + return "\n"; +} + +OFString DcmJsonFormatPretty::space() +{ + return " "; +} + + +//Class for unformatted output +DcmJsonFormatCompact::DcmJsonFormatCompact(const OFBool printMetaheaderInformation) +: DcmJsonFormat(printMetaheaderInformation) +{ + +} + +void DcmJsonFormatCompact::printIndention(STD_NAMESPACE ostream& out) +{} + +void DcmJsonFormatCompact::increaseIndention() +{} + +void DcmJsonFormatCompact::decreaseIndention() +{} + +OFString DcmJsonFormatCompact::newline() +{ + return OFString(); +} + +OFString DcmJsonFormatCompact::space() +{ + return OFString(); +} diff --git a/dcmdata/libsrc/dcmatch.cc b/dcmdata/libsrc/dcmatch.cc new file mode 100644 index 00000000..febb140b --- /dev/null +++ b/dcmdata/libsrc/dcmatch.cc @@ -0,0 +1,327 @@ +/* + * + * Copyright (C) 2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmdata + * + * Author: Jan Schlamelcher + * + * Purpose: Implementing attribute matching for being used in dcmqrdb and dcmwlm etc. + * + */ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/ofmem.h" +#include "dcmtk/dcmdata/dcmatch.h" +#include "dcmtk/dcmdata/dcvr.h" +#include "dcmtk/dcmdata/dcvrda.h" +#include "dcmtk/dcmdata/dcvrdt.h" +#include "dcmtk/dcmdata/dcvrtm.h" + +class DcmAttributeMatching::WildCardMatcher +{ +public: + // constructor, remembering the end of the query and candidate strings + WildCardMatcher( const char* queryDataEnd, const char* candidateDataEnd ) + : queryDataEnd( queryDataEnd ) + , candidateDataEnd( candidateDataEnd ) + { + + } + + // the actual match function, taking two pointers to the beginning of + // the query and the candidate string + OFBool match( const char* queryData, const char* candidateData ) const + { + // matches all regular chars and '?' wildcard with the candidate string + while( queryData != queryDataEnd && candidateData != candidateDataEnd && *queryData != '*' ) + { + if( *queryData == '?' || *queryData == *candidateData ) + { + ++queryData; + ++candidateData; + } + else + { + return OFFalse; + } + } + // if the end of the query is reached, there was no '*' wildcard + // therefor it is either a match (if the end of the candidate was + // also reached) or not + if( queryData == queryDataEnd ) + return candidateData == candidateDataEnd; + // if the current char in the query is not the '*' wildcard, the + // values don't match, since all other chars would have been + // matched by the previous while loop + if( *queryData != '*' ) + return OFFalse; + // skip all '*' wildcard characters, because even a string like "****" + // equals the sematics of '*'. If the end of the query is reached + // any remaining part of the candidate is a match, therefore return + // OFTrue + do if( ++queryData == queryDataEnd ) + return OFTrue; + while( *queryData == '*' ); + // If this part of the code is reached, at least one non wildcard + // character exists in the query after the previously skipped + // wildcards. Search for a match of the remaining query characters + // in the remaining candidate characters, by recursively calling + // match. + while( candidateData != candidateDataEnd ) + { + if( !match( queryData, candidateData ) ) + ++candidateData; + else + return OFTrue; + } + // if the end of the candidate is reached, both strings don't match. + return OFFalse; + } + +private: + // the ends of both the query and the candidate string, will remain + // constant per match operation + const char* const queryDataEnd; + const char* const candidateDataEnd; +}; + +struct DcmAttributeMatching::DashSeparated +{ + DashSeparated( const void* data, const size_t size ) + : first( OFreinterpret_cast( const char*, data ) ) + , firstSize( 0 ) + , second( first ) + , secondSize( size ) + { + while( firstSize != secondSize && first[firstSize] != '-' ) + ++firstSize; + if( firstSize != secondSize ) + { + secondSize = secondSize - firstSize - 1; + second = second + firstSize + 1; + } + } + const char* first; + size_t firstSize; + const char* second; + size_t secondSize; +}; + +OFBool DcmAttributeMatching::singleValueMatching( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) +{ + return !querySize || ( querySize == candidateSize && !memcmp( queryData, candidateData, querySize ) ); +} + +OFBool DcmAttributeMatching::wildCardMatching( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) +{ + return !querySize || WildCardMatcher + ( + OFreinterpret_cast( const char*, queryData ) + querySize, + OFreinterpret_cast( const char*, candidateData ) + candidateSize + ) + .match + ( + OFreinterpret_cast( const char*, queryData ), + OFreinterpret_cast( const char*, candidateData ) + ); +} + +template +OFBool DcmAttributeMatching::rangeMatchingTemplate( OFCondition (*parse)(const char*,const size_t,T&), + const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) +{ + if( !querySize ) + return OFTrue; + T candidate; + if( parse( OFreinterpret_cast( const char*, candidateData ), candidateSize, candidate ).bad() ) + return OFFalse; + const DashSeparated query( queryData, querySize ); + T first; + if( !query.firstSize || parse( query.first, query.firstSize, first ).good() ) + { + // test whether it's a single date/time and not a range + if( query.first == query.second ) + return query.firstSize && first == candidate; + T second; + if( !query.secondSize || parse( query.second, query.secondSize, second ).good() ) + return ( !query.firstSize || first <= candidate ) && ( !query.secondSize || second >= candidate ); + } + return OFFalse; +} + +OFBool DcmAttributeMatching::rangeMatchingDate( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) +{ + return rangeMatchingTemplate( &DcmDate::getOFDateFromString, queryData, querySize, candidateData, candidateSize ); +} + +OFBool DcmAttributeMatching::rangeMatchingTime( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) +{ + return rangeMatchingTemplate( &DcmTime::getOFTimeFromString, queryData, querySize, candidateData, candidateSize ); +} + +OFBool DcmAttributeMatching::rangeMatchingDateTime( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) +{ + return rangeMatchingTemplate( &DcmDateTime::getOFDateTimeFromString, queryData, querySize, candidateData, candidateSize ); +} + +OFBool DcmAttributeMatching::rangeMatchingDateTime( const void* dateQueryData, const size_t dateQuerySize, + const void* timeQueryData, const size_t timeQuerySize, + const void* dateCandidateData, const size_t dateCandidateSize, + const void* timeCandidateData, const size_t timeCandidateSize ) +{ + if( !dateQuerySize ) + return rangeMatchingTime( timeQueryData, timeQuerySize, timeCandidateData, timeCandidateSize ); + OFDateTime candidate; + if( DcmDate::getOFDateFromString( OFreinterpret_cast( const char*, dateCandidateData ), dateCandidateSize, candidate.Date ).bad() ) + return OFFalse; + if( timeCandidateSize && DcmTime::getOFTimeFromString( OFreinterpret_cast( const char*, timeCandidateData ), timeCandidateSize, candidate.Time ).bad() ) + return OFFalse; + const DashSeparated dateQuery( dateQueryData, dateQuerySize ); + const DashSeparated timeQuery( timeQueryData, timeQuerySize ); + // check that both date/time ranges have the same structure + if( ( dateQuery.first == dateQuery.second ) != ( timeQuery.first != timeQuery.second ) ) + return OFFalse; + if( ( !dateQuery.firstSize && timeQuery.firstSize ) || ( !dateQuery.secondSize && timeQuery.secondSize ) ) + return OFFalse; + OFDateTime first; + // parse the first date/time + if( dateQuery.firstSize ) + { + if( DcmDate::getOFDateFromString( dateQuery.first, dateQuery.firstSize, first.Date ).bad() ) + return OFFalse; + if( timeQuery.firstSize && DcmTime::getOFTimeFromString( timeQuery.first, timeQuery.firstSize, first.Time ).bad() ) + return OFFalse; + } + // test whether it's a single date/time and not a range + if( dateQuery.first == dateQuery.second ) + return dateQuery.firstSize && first == candidate; + OFDateTime second; + // parse the second date/time + if( dateQuery.secondSize ) + { + if( DcmDate::getOFDateFromString( dateQuery.second, dateQuery.secondSize, second.Date ).bad() ) + return OFFalse; + if( timeQuery.secondSize && DcmTime::getOFTimeFromString( timeQuery.second, timeQuery.secondSize, second.Time ).bad() ) + return OFFalse; + } + // compare candidate with the date/time range + return ( !dateQuery.firstSize || first <= candidate ) && ( !dateQuery.secondSize || second >= candidate ); +} + +OFBool DcmAttributeMatching::listOfUIDMatching( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) +{ + if( !querySize ) + return OFTrue; + const char* pQuery = OFreinterpret_cast( const char*, queryData ); + const char* const pQueryEnd = pQuery + querySize; + const char* pCandidate = OFreinterpret_cast( const char*, candidateData ); + const char* const pCandidateEnd = pCandidate + candidateSize; + // character wise match both strings, reset candidate pointer whenever a + // '\\' character is encountered within a multi-valued query. + while( pQuery != pQueryEnd ) + { + if( pCandidate != pCandidateEnd && *pQuery == *pCandidate ) + { + ++pQuery; + ++pCandidate; + } + else + { + // test whether the candidate matches with the current value from the query + if( pCandidate == pCandidateEnd && *pQuery == '\\' ) + return OFTrue; + // mismatch, search for a '\\' char to try again with the next value from the query, + // return OFFalse if none can be found, i.e. this was the last value. + while( *pQuery != '\\' ) + if( ++pQuery == pQueryEnd ) + return OFFalse; + // skip the '\\' character + ++pQuery; + // reset candidate pointer to the beginning of the candidate + pCandidate = OFreinterpret_cast( const char*, candidateData ); + } + } + // the query is at its end, we have a match if the candidate is also + return pCandidate == pCandidateEnd; +} + +DcmAttributeMatching::DcmAttributeMatching() +: m_pMatch( OFnullptr ) +{ + +} + +DcmAttributeMatching::DcmAttributeMatching( const DcmVR vr ) +: m_pMatch( OFnullptr ) +{ + switch( vr.getEVR() ) + { + default: + m_pMatch = &DcmAttributeMatching::singleValueMatching; + break; + + case EVR_AE: + case EVR_CS: + case EVR_LO: + case EVR_LT: + case EVR_PN: + case EVR_SH: + case EVR_ST: + case EVR_UC: + case EVR_UR: + case EVR_UT: + m_pMatch = &DcmAttributeMatching::wildCardMatching; + break; + + case EVR_DA: + m_pMatch = &DcmAttributeMatching::rangeMatchingDate; + break; + + case EVR_TM: + m_pMatch = &DcmAttributeMatching::rangeMatchingTime; + break; + + case EVR_DT: + m_pMatch = &DcmAttributeMatching::rangeMatchingDateTime; + break; + + case EVR_UI: + m_pMatch = &DcmAttributeMatching::listOfUIDMatching; + break; + } +} + +DcmAttributeMatching::operator OFBool() const +{ + return m_pMatch; +} + +OFBool DcmAttributeMatching::operator!() const +{ + return !m_pMatch; +} + +OFBool DcmAttributeMatching::operator()( const void* queryData, const size_t querySize, + const void* candidateData, const size_t candidateSize ) const +{ + assert( m_pMatch ); + return m_pMatch( queryData, querySize, candidateData, candidateSize ); +} diff --git a/dcmdata/libsrc/dcmetinf.cc b/dcmdata/libsrc/dcmetinf.cc index 8ab4f6f9..e211c05a 100644 --- a/dcmdata/libsrc/dcmetinf.cc +++ b/dcmdata/libsrc/dcmetinf.cc @@ -38,6 +38,7 @@ #include "dcmtk/dcmdata/dcistrma.h" /* for class DcmInputStream */ #include "dcmtk/dcmdata/dcistrmf.h" /* for class DcmInputFileStream */ #include "dcmtk/dcmdata/dcostrma.h" /* for class DcmOutputStream */ +#include "dcmtk/dcmdata/dcjson.h" const Uint32 DCM_GroupLengthElementLength = 12; @@ -210,6 +211,30 @@ OFCondition DcmMetaInfo::writeXML(STD_NAMESPACE ostream &out, // ******************************** +OFCondition DcmMetaInfo::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + if (format.printMetaheaderInformation) + { + // write content of file meta information + if (!elementList->empty()) + { + elementList->seek(ELP_first); + OFCondition status = EC_Normal; + status = elementList->get()->writeJson(out, format); + while (status.good() && elementList->seek(ELP_next)) + { + out << "," << format.newline(); + status = elementList->get()->writeJson(out, format); + } + return status; + } + } + return EC_Normal; +} + +// ******************************** + void DcmMetaInfo::setPreamble() { memzero(filePreamble, sizeof(filePreamble)); diff --git a/dcmdata/libsrc/dcobject.cc b/dcmdata/libsrc/dcobject.cc index ad169296..3bdb1e2e 100644 --- a/dcmdata/libsrc/dcobject.cc +++ b/dcmdata/libsrc/dcobject.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2012, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -26,6 +26,7 @@ #include "dcmtk/ofstd/ofstd.h" #include "dcmtk/ofstd/ofstream.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcobject.h" #include "dcmtk/dcmdata/dcdeftag.h" #include "dcmtk/dcmdata/dcvr.h" @@ -55,7 +56,9 @@ OFGlobal dcmStopParsingAfterElement(DCM_UndefinedTagKey); // (0xffff, OFGlobal dcmWriteOversizedSeqsAndItemsUndefined(OFTrue); OFGlobal dcmIgnoreFileMetaInformationGroupLength(OFFalse); OFGlobal dcmReplaceWrongDelimitationItem(OFFalse); - +OFGlobal dcmConvertUndefinedLengthOBOWtoSQ(OFFalse); +OFGlobal dcmConvertVOILUTSequenceOWtoSQ(OFFalse); +OFGlobal dcmUseExplLengthPixDataForEncTS(OFFalse); // ****** public methods ********************************** @@ -242,6 +245,17 @@ OFCondition DcmObject::writeXML(STD_NAMESPACE ostream& /*out*/, return EC_IllegalCall; } + +// ******************************** + + +OFCondition DcmObject::writeJson(STD_NAMESPACE ostream& /*out*/, + DcmJsonFormat& /*format*/) +{ + return EC_IllegalCall; +} + + // *********************************************************** // ****** protected methods ********************************** // *********************************************************** diff --git a/dcmdata/libsrc/dcpath.cc b/dcmdata/libsrc/dcpath.cc index e2f6a631..82842561 100644 --- a/dcmdata/libsrc/dcpath.cc +++ b/dcmdata/libsrc/dcpath.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2008-2011, OFFIS e.V. + * Copyright (C) 2008-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -638,7 +638,7 @@ OFCondition DcmPathProcessor::findOrCreateItemPath(DcmItem* item, status = checkPrivateTagReservation(item, tag); if (status.bad()) return status; } - elem = newDicomElement(tag); + elem = DcmItem::newDicomElement(tag); if (elem == NULL) return EC_IllegalCall; status = item->insert(elem, OFTrue); diff --git a/dcmdata/libsrc/dcpixel.cc b/dcmdata/libsrc/dcpixel.cc index 6e9b82ff..c21acc44 100644 --- a/dcmdata/libsrc/dcpixel.cc +++ b/dcmdata/libsrc/dcpixel.cc @@ -949,12 +949,17 @@ OFCondition DcmPixelData::write( if (getTransferState() == ERW_notInitialized) errorFlag = EC_IllegalCall; else { + // check if the output transfer syntax is encapsulated + // and we are not requested to write an uncompressed dataset + // for example because this is within an Icon Image Sequence DcmXfer xferSyn(oxfer); if (xferSyn.isEncapsulated() && (! writeUnencapsulated(oxfer))) { + // write encapsulated representation (i.e., compressed image) if (getTransferState() == ERW_init) { DcmRepresentationListIterator found; + // find a compressed image matching the output transfer syntax errorFlag = findConformingEncapsulatedRepresentation(xferSyn, NULL, found); if (errorFlag == EC_Normal) { @@ -964,17 +969,21 @@ OFCondition DcmPixelData::write( setTransferState(ERW_inWork); } } + // write compressed image if (errorFlag == EC_Normal && pixelSeqForWrite) errorFlag = pixelSeqForWrite->write(outStream, oxfer, enctype, wcache); if (errorFlag == EC_Normal) setTransferState(ERW_ready); } else if (existUnencapsulated) { + // we're supposed to write an uncompressed image, and we happen to have one available. current = repListEnd; recalcVR(); + // write uncompressed image errorFlag = DcmPolymorphOBOW::write(outStream, oxfer, enctype, wcache); } - else if (getValue() == NULL) + else if ((getValue() == NULL) && (current == repListEnd)) { + // the PixelData is empty. Write an empty element. errorFlag = DcmPolymorphOBOW::write(outStream, oxfer, enctype, wcache); } else errorFlag = EC_RepresentationNotFound; } diff --git a/dcmdata/libsrc/dcpixseq.cc b/dcmdata/libsrc/dcpixseq.cc index 374e8b16..d8cdcf1a 100644 --- a/dcmdata/libsrc/dcpixseq.cc +++ b/dcmdata/libsrc/dcpixseq.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -40,6 +40,15 @@ // ******************************** +DcmPixelSequence::DcmPixelSequence(const DcmTag &tag) + : DcmSequenceOfItems(tag, 0), + Xfer(EXS_Unknown) +{ + setTagVR(EVR_OB); + setLengthField(DCM_UndefinedLength); // pixel sequences always use undefined length +} + + DcmPixelSequence::DcmPixelSequence(const DcmTag &tag, const Uint32 len) : DcmSequenceOfItems(tag, len), diff --git a/dcmdata/libsrc/dcsequen.cc b/dcmdata/libsrc/dcsequen.cc index c69f2082..600c0f80 100644 --- a/dcmdata/libsrc/dcsequen.cc +++ b/dcmdata/libsrc/dcsequen.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -30,6 +30,7 @@ #include "dcmtk/ofstd/ofstd.h" #include "dcmtk/ofstd/ofcast.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcsequen.h" #include "dcmtk/dcmdata/dcitem.h" #include "dcmtk/dcmdata/dcdirrec.h" @@ -42,6 +43,16 @@ #include "dcmtk/dcmdata/dcostrma.h" /* for class DcmOutputStream */ +DcmSequenceOfItems::DcmSequenceOfItems(const DcmTag &tag) +: DcmElement(tag, 0), + itemList(new DcmList), + lastItemComplete(OFTrue), + fStartPosition(0), + readAsUN_(OFFalse) +{ +} + + // ******************************** @@ -379,6 +390,33 @@ OFCondition DcmSequenceOfItems::writeXML(STD_NAMESPACE ostream&out, // ******************************** +OFCondition DcmSequenceOfItems::writeJson(STD_NAMESPACE ostream& out, + DcmJsonFormat &format) +{ + // use common method from DcmElement to write opener + DcmElement::writeJsonOpener(out, format); + OFCondition status = EC_Normal; + // write sequence content + if (!itemList->empty()) + { + format.printValuePrefix(out); + itemList->seek(ELP_first); + status = itemList->get()->writeJson(out, format); + while (status.good() && itemList->seek(ELP_next)) + { + format.printNextArrayElementPrefix(out); + status = itemList->get()->writeJson(out, format); + } + format.printValueSuffix(out); + } + DcmElement::writeJsonCloser(out, format); + return status; +} + + +// ******************************** + + OFBool DcmSequenceOfItems::canWriteXfer(const E_TransferSyntax newXfer, const E_TransferSyntax oldXfer) { diff --git a/dcmdata/libsrc/dcspchrs.cc b/dcmdata/libsrc/dcspchrs.cc index 8520355d..8aca34f6 100644 --- a/dcmdata/libsrc/dcspchrs.cc +++ b/dcmdata/libsrc/dcspchrs.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2011-2015, OFFIS e.V. + * Copyright (C) 2011-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -41,23 +41,37 @@ DcmSpecificCharacterSet::DcmSpecificCharacterSet() : SourceCharacterSet(), DestinationCharacterSet(), DestinationEncoding(), - EncodingConverter(), - ConversionDescriptors() + DefaultEncodingConverter(), + EncodingConverters() { } DcmSpecificCharacterSet::~DcmSpecificCharacterSet() { - // this frees all previously allocated resources - closeConversionDescriptors(); + clear(); } void DcmSpecificCharacterSet::clear() { - // this also clears all other member variables - closeConversionDescriptors(); + DefaultEncodingConverter.clear(); + EncodingConverters.clear(); + SourceCharacterSet.clear(); + DestinationCharacterSet.clear(); + DestinationEncoding.clear(); +} + + +DcmSpecificCharacterSet::operator OFBool() const +{ + return OFstatic_cast(OFBool, DefaultEncodingConverter); +} + + +OFBool DcmSpecificCharacterSet::operator!() const +{ + return !DefaultEncodingConverter; } @@ -79,25 +93,34 @@ const OFString &DcmSpecificCharacterSet::getDestinationEncoding() const } -OFBool DcmSpecificCharacterSet::getTransliterationMode() const +unsigned DcmSpecificCharacterSet::getConversionFlags() const { - return EncodingConverter.getTransliterationMode(); + return DefaultEncodingConverter.getConversionFlags(); } -OFBool DcmSpecificCharacterSet::getDiscardIllegalSequenceMode() const +OFCondition DcmSpecificCharacterSet::setConversionFlags(const unsigned flags) { - return EncodingConverter.getDiscardIllegalSequenceMode(); + if (!EncodingConverters.empty()) + { + /* pass conversion flags to all "encoding converters" */ + for (T_EncodingConvertersMap::iterator it = EncodingConverters.begin(); + it != EncodingConverters.end(); ++it) + { + OFCondition status = it->second.setConversionFlags(flags); + if (status.bad()) + return status; + } + return EC_Normal; + } else return DefaultEncodingConverter.setConversionFlags(flags); } OFCondition DcmSpecificCharacterSet::selectCharacterSet(const OFString &fromCharset, - const OFString &toCharset, - const OFBool transliterate, - const OFBool discardIllegal) + const OFString &toCharset) { - // first, make sure that all conversion descriptors are closed - closeConversionDescriptors(); + // first, make sure that all converters are cleared + clear(); // determine the destination encoding (and check whether it is supported at all) OFCondition status = determineDestinationEncoding(toCharset); if (status.good()) @@ -110,7 +133,7 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSet(const OFString &fromChar if (sourceVM == 0) { // no character set specified, use ASCII - status = EncodingConverter.selectEncoding("ASCII", DestinationEncoding); + status = DefaultEncodingConverter.selectEncoding("ASCII", DestinationEncoding); // output some useful debug information if (status.good()) { @@ -126,55 +149,19 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSet(const OFString &fromChar // multiple character sets specified (code extensions used) status = selectCharacterSetWithCodeExtensions(sourceVM); } - // enable or disable the transliteration mode - if (status.good()) - { - status = EncodingConverter.setTransliterationMode(transliterate); - if (status.good()) - { - // output some useful debug information - if (transliterate) - { - DCMDATA_DEBUG("DcmSpecificCharacterSet: Enabled transliteration mode, " - << "i.e. the approximation of similar looking characters will be used"); - } else { - DCMDATA_DEBUG("DcmSpecificCharacterSet: Disabled transliteration mode, " - << "i.e. the approximation of similar looking characters will not be used"); - } - } - } - // enable or disable the discard illegal sequence mode - if (status.good()) - { - status = EncodingConverter.setDiscardIllegalSequenceMode(discardIllegal); - if (status.good()) - { - // output some useful debug information - if (discardIllegal) - { - DCMDATA_DEBUG("DcmSpecificCharacterSet: Enabled 'discard illegal sequence' mode, " - << "i.e. non-representable characters will be discarded"); - } else { - DCMDATA_DEBUG("DcmSpecificCharacterSet: Disabled 'discard illegal sequence' mode, " - << "i.e. non-representable characters will not be discarded"); - } - } - } } return status; } OFCondition DcmSpecificCharacterSet::selectCharacterSet(DcmItem &dataset, - const OFString &toCharset, - const OFBool transliterate, - const OFBool discardIllegal) + const OFString &toCharset) { OFString fromCharset; // check whether Specific Character Set (0008,0005) is present in the given item/dataset dataset.findAndGetOFStringArray(DCM_SpecificCharacterSet, fromCharset, OFFalse /*searchIntoSub*/); // if missing or empty, the default character set (ASCII) will be used - return selectCharacterSet(fromCharset, toCharset, transliterate, discardIllegal); + return selectCharacterSet(fromCharset, toCharset); } @@ -213,14 +200,22 @@ OFCondition DcmSpecificCharacterSet::determineDestinationEncoding(const OFString else if (DestinationCharacterSet == "ISO_IR 148") // Latin alphabet No. 5 DestinationEncoding = "ISO-8859-9"; else if (DestinationCharacterSet == "ISO_IR 13") // Japanese - DestinationEncoding = "JIS_X0201"; // - "ISO-IR-13" is not supported by libiconv +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV + DestinationEncoding = "JIS_X0201"; // - the name "ISO-IR-13" is not supported by libiconv +#else + DestinationEncoding = "Shift_JIS"; // - ICU and stdlibc iconv only know "Shift_JIS" (is this mapping correct?) +#endif else if (DestinationCharacterSet == "ISO_IR 166") // Thai +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICU + DestinationEncoding = "TIS-620"; // - the name "ISO-IR-166" is not supported by ICU +#else DestinationEncoding = "ISO-IR-166"; +#endif else if (DestinationCharacterSet == "ISO_IR 192") // Unicode in UTF-8 (multi-byte) DestinationEncoding = "UTF-8"; else if (DestinationCharacterSet == "GB18030") // Chinese (multi-byte) DestinationEncoding = "GB18030"; - else if (DestinationCharacterSet == "GBK") // Chinese (multi-byte, subset of GB18030) + else if (DestinationCharacterSet == "GBK") // Chinese (multi-byte, subset of "GB 18030") DestinationEncoding = "GBK"; else { DestinationEncoding.clear(); @@ -266,14 +261,22 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions() else if (SourceCharacterSet == "ISO_IR 148") // Latin alphabet No. 5 fromEncoding = "ISO-8859-9"; else if (SourceCharacterSet == "ISO_IR 13") // Japanese - fromEncoding = "JIS_X0201"; // - "ISO-IR-13" is not supported by libiconv +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV + fromEncoding = "JIS_X0201"; // - the name "ISO-IR-13" is not supported by libiconv +#else + fromEncoding = "Shift_JIS"; // - ICU and stdlibc iconv only know "Shift_JIS" (is this mapping correct?) +#endif else if (SourceCharacterSet == "ISO_IR 166") // Thai +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICU + fromEncoding = "TIS-620"; // - the name "ISO-IR-166" is not supported by ICU +#else fromEncoding = "ISO-IR-166"; +#endif else if (SourceCharacterSet == "ISO_IR 192") // Unicode in UTF-8 (multi-byte) fromEncoding = "UTF-8"; else if (SourceCharacterSet == "GB18030") // Chinese (multi-byte) fromEncoding = "GB18030"; - else if (SourceCharacterSet == "GBK") // Chinese (multi-byte, subset of GB18030) + else if (SourceCharacterSet == "GBK") // Chinese (multi-byte, subset of "GB 18030") fromEncoding = "GBK"; else { // create an appropriate error code @@ -286,7 +289,7 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions() // check whether an appropriate character encoding has been found if (!fromEncoding.empty()) { - status = EncodingConverter.selectEncoding(fromEncoding, DestinationEncoding); + status = DefaultEncodingConverter.selectEncoding(fromEncoding, DestinationEncoding); // output some useful debug information if (status.good()) { @@ -309,7 +312,6 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSetWithCodeExtensions(const OFBool needsASCII = OFFalse; OFBool notFirstValue = OFFalse; OFString definedTerm; - OFCharacterEncoding::T_Descriptor descriptor; unsigned long i = 0; while ((i < sourceVM) && status.good()) { @@ -368,21 +370,29 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSetWithCodeExtensions(const } else if (definedTerm == "ISO 2022 IR 13") // Japanese { - encodingName = "JIS_X0201"; // - "ISO-IR-13" is not supported by libiconv +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV + encodingName = "JIS_X0201"; // - the name "ISO-IR-13" is not supported by libiconv +#else + encodingName = "Shift_JIS"; // - ICU and stdlibc iconv only know "Shift_JIS" (is this mapping correct?) +#endif } else if (definedTerm == "ISO 2022 IR 166") // Thai { +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICU + encodingName = "TIS-620"; // - "ISO-IR-166" is not supported by ICU +#else encodingName = "ISO-IR-166"; +#endif needsASCII = OFTrue; } else if (definedTerm == "ISO 2022 IR 87") // Japanese (multi-byte) { - encodingName = "ISO-IR-87"; + encodingName = "ISO-IR-87"; // - this might generate an error since "ISO-IR-87" is not supported by ICU and stdlibc iconv notFirstValue = OFTrue; } else if (definedTerm == "ISO 2022 IR 159") // Japanese (multi-byte) { - encodingName = "ISO-IR-159"; + encodingName = "ISO-IR-159"; // - this might generate an error since "ISO-IR-159" is not supported by ICU and stdlibc iconv notFirstValue = OFTrue; } else if (definedTerm == "ISO 2022 IR 149") // Korean (multi-byte) @@ -415,23 +425,29 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSetWithCodeExtensions(const // add descriptor to the map using the defined term as a key if (status.good() && !encodingName.empty()) { + OFPair conv = EncodingConverters.insert( + OFMake_pair(definedTerm, OFCharacterEncoding())); // but first check whether this encoding has already been added before - if (ConversionDescriptors.find(definedTerm) == ConversionDescriptors.end()) + if (conv.second) { - status = EncodingConverter.openDescriptor(descriptor, encodingName, DestinationEncoding); + status = conv.first->second.selectEncoding(encodingName, DestinationEncoding); if (status.good()) { - ConversionDescriptors[definedTerm] = descriptor; // output some useful debug information DCMDATA_DEBUG("DcmSpecificCharacterSet: Added character set '" << definedTerm << "' (" << encodingName << ") for the conversion to " << DestinationEncoding); // also remember the default descriptor, which refers to the first character set if (i == 0) { - EncodingConverter.ConversionDescriptor = descriptor; + DefaultEncodingConverter = conv.first->second; DCMDATA_TRACE("DcmSpecificCharacterSet: Also selected this character set " << "(i.e. '" << definedTerm << "') as the default one"); } + } else { + DCMDATA_ERROR("DcmSpecificCharacterSet: '" << definedTerm << + "' is not supported by the utilized character set conversion library '" + << OFCharacterEncoding::getLibraryVersionString() << '\''); + EncodingConverters.erase(conv.first); } } else { DCMDATA_WARN("DcmSpecificCharacterSet: '" << definedTerm << "' is defined more than once " @@ -440,19 +456,25 @@ OFCondition DcmSpecificCharacterSet::selectCharacterSetWithCodeExtensions(const } ++i; } - if (status.good()) + // add ASCII to the map if needed but not already there + if (status.good() && needsASCII) { - // add ASCII to the map if needed but not already there - if (needsASCII && (ConversionDescriptors.find("ISO 2022 IR 6") == ConversionDescriptors.end())) + OFPair conv = EncodingConverters.insert( + OFMake_pair(OFString("ISO 2022 IR 6"), OFCharacterEncoding())); + if (conv.second) { - status = EncodingConverter.openDescriptor(descriptor, "ASCII", DestinationEncoding); + status = conv.first->second.selectEncoding("ASCII", DestinationEncoding); if (status.good()) { - ConversionDescriptors["ISO 2022 IR 6"] = descriptor; // output some useful debug information DCMDATA_DEBUG("DcmSpecificCharacterSet: Added character set 'ISO 2022 IR 6' (ASCII) " << "for the conversion to " << DestinationEncoding << " (because it is needed for one or more of the previously added character sets)"); + } else { + DCMDATA_ERROR("DcmSpecificCharacterSet: 'ISO 2022 IR 6' is not supported by" + << " the utilized character set conversion library '" + << OFCharacterEncoding::getLibraryVersionString() << '\''); + EncodingConverters.erase(conv.first); } } } @@ -476,12 +498,12 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, { OFCondition status = EC_Normal; // check whether there are any code extensions at all - if ((ConversionDescriptors.size() == 0) || !checkForEscapeCharacter(fromString, fromLength)) + if (EncodingConverters.empty() || !checkForEscapeCharacter(fromString, fromLength)) { DCMDATA_DEBUG("DcmSpecificCharacterSet: Converting '" << convertToLengthLimitedOctalString(fromString, fromLength) << "'"); // no code extensions according to ISO 2022 used - this is the simple case - status = EncodingConverter.convertString(fromString, fromLength, toString, OFTrue /*clearMode*/); + status = DefaultEncodingConverter.convertString(fromString, fromLength, toString, OFTrue /*clearMode*/); } else { if (delimiters.empty()) { @@ -497,25 +519,27 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, // particular escape sequences in order to switch between character sets toString.clear(); size_t pos = 0; + // some (extended) character sets use more than 1 byte per character + // (however, the default character set always uses a single byte) + unsigned char bytesPerChar = 1; // check whether '=' is a delimiter, as it is used in PN values OFBool isFirstGroup = (delimiters.find('=') != OFString_npos); - // by default, we expect that '^' and '=' (i.e. their ASCII codes) are valid PN delimiters + // by default, we expect that delimiters can be checked by their corresponding ASCII codes // (this implies that the default character set is not "ISO 2022 IR 87" or "ISO 2022 IR 159") - OFBool checkPNDelimiters = OFTrue; + OFBool checkDelimiters = OFTrue; const char *firstChar = fromString; const char *currentChar = fromString; // initially, use the default descriptor - OFCharacterEncoding::T_Descriptor descriptor = EncodingConverter.ConversionDescriptor; + OFCharacterEncoding converter = DefaultEncodingConverter; DCMDATA_TRACE(" Starting with the default character set"); // iterate over all characters of the string (as long as there is no error) while ((pos < fromLength) && status.good()) { const char c0 = *currentChar++; // check for characters ESC, HT, LF, FF, CR or any other specified delimiter - // (the PN delimiters '^' and '=' require the default character set or ASCII) const OFBool isEscape = (c0 == '\033'); - const OFBool isDelimiter = (c0 == '\011') || (c0 == '\012') || (c0 == '\014') || (c0 == '\015') || - ((delimiters.find(c0) != OFString_npos) && (((c0 != '^') && (c0 != '=')) || checkPNDelimiters)); + const OFBool isDelimiter = checkDelimiters && + ((c0 == '\011') || (c0 == '\012') || (c0 == '\014') || (c0 == '\015') || (delimiters.find(c0) != OFString_npos)); if (isEscape || isDelimiter) { // convert the sub-string (before the delimiter) with the current character set @@ -525,7 +549,7 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, // output some debug information DCMDATA_TRACE(" Converting sub-string '" << convertToLengthLimitedOctalString(firstChar, convertLength) << "'"); - status = EncodingConverter.convertString(descriptor, firstChar, convertLength, toString, OFFalse /*clearMode*/); + status = converter.convertString(firstChar, convertLength, toString, OFFalse /*clearMode*/); if (status.bad()) DCMDATA_TRACE(" -> ERROR: " << status.text()); } @@ -596,7 +620,7 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, if (pos + escLength < fromLength) { c3 = *currentChar++; - if (c3 == 0x43) // Korean (multi-byte) + if (c3 == 0x43) // Korean (single- and multi-byte) key = "ISO 2022 IR 149"; else if (c3 == 0x41) // Simplified Chinese (multi-byte) key = "ISO 2022 IR 58"; @@ -624,14 +648,28 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, if (status.good()) { DCMDATA_TRACE(" Switching to character set '" << key << "'"); - T_DescriptorMap::const_iterator iter = ConversionDescriptors.find(key); + T_EncodingConvertersMap::const_iterator it = EncodingConverters.find(key); // check whether the descriptor was found in the map, i.e. properly declared in (0008,0005) - if (iter != ConversionDescriptors.end()) + if (it != EncodingConverters.end()) { - descriptor = iter->second; + converter = it->second; // special case: these Japanese character sets replace the ASCII part (G0 code area), - // so according to DICOM PS 3.5 Section 6.2.1 an explicit switch to the default is required - checkPNDelimiters = (key != "ISO 2022 IR 87") && (key != "ISO 2022 IR 159"); + // so according to DICOM PS 3.5 Section 6.2.1.2 an explicit switch to the default is required + checkDelimiters = (key != "ISO 2022 IR 87") && (key != "ISO 2022 IR 159"); + // determine number of bytes per character (used by the selected character set) + if ((key == "ISO 2022 IR 87") || (key == "ISO 2022 IR 159") || (key == "ISO 2022 IR 58")) + { + DCMDATA_TRACE(" Now using 2 bytes per character"); + bytesPerChar = 2; + } + else if (key == "ISO 2022 IR 149") + { + DCMDATA_TRACE(" Now using 1 or 2 bytes per character"); + bytesPerChar = 0; // special handling for single- and multi-byte + } else { + DCMDATA_TRACE(" Now using 1 byte per character"); + bytesPerChar = 1; + } } else { OFOStringStream stream; stream << "Cannot convert character set: Escape sequence refers to character set '" << key << "' that " @@ -654,7 +692,7 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, // do not copy the escape sequence to the output firstChar = currentChar; } - // the LF, FF, CR character or other delimiters (depending on the VR) also cause a switch + // the HT, LF, FF, CR character or other delimiters (depending on the VR) also cause a switch else if (isDelimiter) { // output some debug information @@ -664,15 +702,23 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, // don't forget to append the delimiter toString += c0; // use the default descriptor again (see DICOM PS 3.5) - if (descriptor != EncodingConverter.ConversionDescriptor) + if (converter != DefaultEncodingConverter) { DCMDATA_TRACE(" Switching back to the default character set (because a delimiter was found)"); - descriptor = EncodingConverter.ConversionDescriptor; - checkPNDelimiters = OFTrue; + converter = DefaultEncodingConverter; + checkDelimiters = OFTrue; } // start new sub-string after delimiter firstChar = currentChar; } + // skip remaining bytes of current character (if any) + else if (bytesPerChar != 1) + { + const size_t skipBytes = (bytesPerChar > 0) ? (bytesPerChar - 1) : ((c0 & 0x80) ? 1 : 0); + if (pos + skipBytes < fromLength) + currentChar += skipBytes; + pos += skipBytes; + } ++pos; } if (status.good()) @@ -684,7 +730,7 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, // output some debug information DCMDATA_TRACE(" Converting remaining sub-string '" << convertToLengthLimitedOctalString(firstChar, convertLength) << "'"); - status = EncodingConverter.convertString(descriptor, firstChar, convertLength, toString, OFFalse /*clearMode*/); + status = converter.convertString(firstChar, convertLength, toString, OFFalse /*clearMode*/); if (status.bad()) DCMDATA_TRACE(" -> ERROR: " << status.text()); } @@ -708,7 +754,7 @@ OFCondition DcmSpecificCharacterSet::convertString(const char *fromString, } -OFBool DcmSpecificCharacterSet::isConversionLibraryAvailable() +OFBool DcmSpecificCharacterSet::isConversionAvailable() { // just call the appropriate function from the underlying class return OFCharacterEncoding::isLibraryAvailable(); @@ -722,37 +768,6 @@ size_t DcmSpecificCharacterSet::countCharactersInUTF8String(const OFString &utf8 } -void DcmSpecificCharacterSet::closeConversionDescriptors() -{ - T_DescriptorMap::iterator iter = ConversionDescriptors.begin(); - T_DescriptorMap::const_iterator last = ConversionDescriptors.end(); - // iterate over the map of conversion descriptors - while (iter != last) - { - // make sure that the default descriptor is not closed multiple times - if (iter->second != EncodingConverter.ConversionDescriptor) - { - // and close the descriptor - if (EncodingConverter.closeDescriptor(iter->second).bad()) - { - DCMDATA_ERROR("DcmSpecificCharacterSet: Cannot close previously allocated " - << "conversion descriptor for '" << iter->first << "'"); - } - } - ++iter; - } - // clear the map - ConversionDescriptors.clear(); - // and close the default descriptor - if (EncodingConverter.closeDescriptor(EncodingConverter.ConversionDescriptor).bad()) - DCMDATA_ERROR("DcmSpecificCharacterSet: Cannot close currently selected conversion descriptor"); - // also clear the various character set and encoding name variables - SourceCharacterSet.clear(); - DestinationCharacterSet.clear(); - DestinationEncoding.clear(); -} - - OFBool DcmSpecificCharacterSet::checkForEscapeCharacter(const char *strValue, const size_t strLength) const { diff --git a/dcmdata/libsrc/dcstack.cc b/dcmdata/libsrc/dcstack.cc index eba49a2f..44514470 100644 --- a/dcmdata/libsrc/dcstack.cc +++ b/dcmdata/libsrc/dcstack.cc @@ -162,9 +162,11 @@ DcmObject* DcmStack::elem(const unsigned long number) const unsigned long num = number; DcmObject *obj; DcmStackNode *node = topNode_; - while ( num-- > 0 && node != NULL ) + while ( num > 0 && node != NULL ) + { node = node->link; - + --num; + } if ( node != NULL ) obj = node->value(); else diff --git a/dcmdata/libsrc/dcswap.cc b/dcmdata/libsrc/dcswap.cc index b6f041e6..37fa4a7e 100644 --- a/dcmdata/libsrc/dcswap.cc +++ b/dcmdata/libsrc/dcswap.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -87,8 +87,9 @@ void swapBytes(void * value, const Uint32 byteLength, Uint8 *first = &OFstatic_cast(Uint8*, value)[0]; Uint8 *second = &OFstatic_cast(Uint8*, value)[1]; Uint32 times = byteLength / 2; - while(times--) + while(times) { + --times; save = *first; *first = *second; *second = save; @@ -108,13 +109,15 @@ void swapBytes(void * value, const Uint32 byteLength, Uint32 times = OFstatic_cast(Uint32, byteLength / valWidth); Uint8 *base = OFstatic_cast(Uint8 *, value); - while (times--) + while (times) { + --times; i = halfWidth; start = base; end = base+offset; - while (i--) + while (i) { + --i; save = *start; *start++ = *end; *end-- = save; diff --git a/dcmdata/libsrc/dctypes.cc b/dcmdata/libsrc/dctypes.cc index 561dcdd3..b52e5cea 100644 --- a/dcmdata/libsrc/dctypes.cc +++ b/dcmdata/libsrc/dctypes.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2002-2011, OFFIS e.V. + * Copyright (C) 2002-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -34,7 +34,7 @@ const size_t DCMTypes::PF_convertToMarkup = 1 << 3; const size_t DCMTypes::PF_convertToOctalNumbers = 1 << 4; const size_t DCMTypes::PF_useANSIEscapeCodes = 1 << 5; -/* writeXML flags */ +/* write XML flags */ const size_t DCMTypes::XF_addDocumentType = 1 << 0; const size_t DCMTypes::XF_writeBinaryData = 1 << 1; const size_t DCMTypes::XF_encodeBase64 = 1 << 2; @@ -43,3 +43,7 @@ const size_t DCMTypes::XF_embedDocumentType = 1 << 4; const size_t DCMTypes::XF_omitDataElementName = 1 << 5; const size_t DCMTypes::XF_convertNonASCII = 1 << 6; const size_t DCMTypes::XF_useNativeModel = 1 << 7; + +/* character set conversion flags */ +const size_t DCMTypes::CF_transliterate = 1 << 0; +const size_t DCMTypes::CF_discardIllegal = 1 << 1; diff --git a/dcmdata/libsrc/dcuid.cc b/dcmdata/libsrc/dcuid.cc index 18bbad10..a5b86e65 100644 --- a/dcmdata/libsrc/dcuid.cc +++ b/dcmdata/libsrc/dcuid.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -122,6 +122,10 @@ static const UIDNameMap uidNameMap[] = { { UID_DeflatedExplicitVRLittleEndianTransferSyntax, "DeflatedLittleEndianExplicit" }, { UID_JPEG2000LosslessOnlyTransferSyntax, "JPEG2000LosslessOnly" }, { UID_JPEG2000TransferSyntax, "JPEG2000" }, + { UID_JPEG2000Part2MulticomponentImageCompressionLosslessOnlyTransferSyntax, "JPEG2000MulticomponentLosslessOnly" }, + { UID_JPEG2000Part2MulticomponentImageCompressionTransferSyntax, "JPEG2000Multicomponent" }, + { UID_JPIPReferencedTransferSyntax, "JPIPReferenced" }, + { UID_JPIPReferencedDeflateTransferSyntax, "JPIPReferencedDeflate" }, { UID_MPEG2MainProfileAtMainLevelTransferSyntax, "MPEG2MainProfile@MainLevel" }, { UID_MPEG2MainProfileAtHighLevelTransferSyntax, "MPEG2MainProfile@HighLevel" }, { UID_MPEG4HighProfileLevel4_1TransferSyntax, "MPEG4HighProfile/Level4.1" }, @@ -129,10 +133,8 @@ static const UIDNameMap uidNameMap[] = { { UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax, "MPEG4HighProfile/Level4.2For2DVideo" }, { UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax, "MPEG4HighProfile/Level4.2For3DVideo" }, { UID_MPEG4StereoHighProfileLevel4_2TransferSyntax, "MPEG4StereoHighProfile/Level4.2" }, - { UID_JPEG2000Part2MulticomponentImageCompressionLosslessOnlyTransferSyntax, "JPEG2000MulticomponentLosslessOnly" }, - { UID_JPEG2000Part2MulticomponentImageCompressionTransferSyntax, "JPEG2000Multicomponent" }, - { UID_JPIPReferencedTransferSyntax, "JPIPReferenced" }, - { UID_JPIPReferencedDeflateTransferSyntax, "JPIPReferencedDeflate" }, + { UID_HEVCMainProfileLevel5_1TransferSyntax, "HEVCMainProfile/Level5.1" }, + { UID_HEVCMain10ProfileLevel5_1TransferSyntax, "HEVCMain10Profile/Level5.1" }, { UID_RFC2557MIMEEncapsulationTransferSyntax, "RFC2557MIMEEncapsulation" }, { UID_XMLEncodingTransferSyntax, "XMLEncoding" }, @@ -151,6 +153,7 @@ static const UIDNameMap uidNameMap[] = { { UID_CardiacElectrophysiologyWaveformStorage, "CardiacElectrophysiologyWaveformStorage" }, { UID_ChestCADSRStorage, "ChestCADSRStorage" }, { UID_ColonCADSRStorage, "ColonCADSRStorage" }, + { UID_ColorPaletteStorage, "ColorPaletteStorage" }, { UID_ColorSoftcopyPresentationStateStorage, "ColorSoftcopyPresentationStateStorage" }, { UID_CompositingPlanarMPRVolumetricPresentationStateStorage, "CompositingPlanarMPRVolumetricPresentationStateStorage" }, { UID_Comprehensive3DSRStorage, "Comprehensive3DSRStorage" }, @@ -158,7 +161,9 @@ static const UIDNameMap uidNameMap[] = { { UID_ComputedRadiographyImageStorage, "ComputedRadiographyImageStorage" }, { UID_ContentAssessmentResultsStorage, "ContentAssessmentResultsStorage" }, { UID_CornealTopographyMapStorage, "CornealTopographyMapStorage" }, + { UID_CTDefinedProcedureProtocolStorage, "CTDefinedProcedureProtocolStorage" }, { UID_CTImageStorage, "CTImageStorage" }, + { UID_CTPerformedProcedureProtocolStorage, "CTPerformedProcedureProtocolStorage" }, { UID_DeformableSpatialRegistrationStorage, "DeformableSpatialRegistrationStorage" }, { UID_DigitalIntraOralXRayImageStorageForPresentation, "DigitalIntraOralXRayImageStorageForPresentation" }, { UID_DigitalIntraOralXRayImageStorageForProcessing, "DigitalIntraOralXRayImageStorageForProcessing" }, @@ -233,6 +238,7 @@ static const UIDNameMap uidNameMap[] = { { UID_RTTreatmentSummaryRecordStorage, "RTTreatmentSummaryRecordStorage" }, { UID_SecondaryCaptureImageStorage, "SecondaryCaptureImageStorage" }, { UID_SegmentationStorage, "SegmentationStorage" }, + { UID_SimplifiedAdultEchoSRStorage, "SimplifiedAdultEchoSRStorage" }, { UID_SpatialFiducialsStorage, "SpatialFiducialsStorage" }, { UID_SpatialRegistrationStorage, "SpatialRegistrationStorage" }, { UID_SpectaclePrescriptionReportStorage, "SpectaclePrescriptionReportStorage" }, @@ -255,7 +261,7 @@ static const UIDNameMap uidNameMap[] = { { UID_VLSlideCoordinatesMicroscopicImageStorage, "VLSlideCoordinatesMicroscopicImageStorage" }, { UID_VLWholeSlideMicroscopyImageStorage, "VLWholeSlideMicroscopyImageStorage" }, { UID_WideFieldOphthalmicPhotographyStereographicProjectionImageStorage, "WideFieldOphthalmicPhotographyStereographicProjectionImageStorage" }, - { UID_WideFieldOphthalmicPhotography3DCoordinatesImageStorage, "OphthalmicPhotography3DCoordinatesImageStorage" }, + { UID_WideFieldOphthalmicPhotography3DCoordinatesImageStorage, "WideFieldOphthalmicPhotography3DCoordinatesImageStorage" }, { UID_XAXRFGrayscaleSoftcopyPresentationStateStorage, "XAXRFGrayscaleSoftcopyPresentationStateStorage" }, { UID_XRay3DAngiographicImageStorage, "XRay3DAngiographicImageStorage" }, { UID_XRay3DCraniofacialImageStorage, "XRay3DCraniofacialImageStorage" }, @@ -345,8 +351,7 @@ static const UIDNameMap uidNameMap[] = { { UID_CardiacRelevantPatientInformationQuery, "CardiacRelevantPatientInformationQuery" }, { UID_GeneralRelevantPatientInformationQuery, "GeneralRelevantPatientInformationQuery" }, - // Color Palette Storage and Query/Retrieve - { UID_ColorPaletteStorage, "ColorPaletteStorage" }, + // Color Palette Query/Retrieve { UID_FINDColorPaletteInformationModel, "FINDColorPaletteInformationModel" }, { UID_MOVEColorPaletteInformationModel, "MOVEColorPaletteInformationModel" }, { UID_GETColorPaletteInformationModel, "GETColorPaletteInformationModel" }, @@ -362,6 +367,11 @@ static const UIDNameMap uidNameMap[] = { { UID_MOVEImplantTemplateGroupInformationModel, "MOVEImplantTemplateGroupInformationModel" }, { UID_GETImplantTemplateGroupInformationModel, "GETImplantTemplateGroupInformationModel" }, + // Defined Procedure Protocol Query/Retrieve + { UID_FINDDefinedProcedureProtocolInformationModel, "FINDDefinedProcedureProtocolInformationModel" }, + { UID_MOVEDefinedProcedureProtocolInformationModel, "MOVEDefinedProcedureProtocolInformationModel" }, + { UID_GETDefinedProcedureProtocolInformationModel, "GETDefinedProcedureProtocolInformationModel" }, + // Print { UID_BasicAnnotationBoxSOPClass, "BasicAnnotationBoxSOPClass" }, { UID_BasicColorImageBoxSOPClass, "BasicColorImageBoxSOPClass" }, @@ -507,6 +517,10 @@ static const UIDNameMap uidNameMap[] = { { UID_HotMetalBlueColorPaletteSOPInstance, "HotMetalBlueColorPaletteSOPInstance" }, { UID_PET20StepColorPaletteSOPInstance, "PET20StepColorPaletteSOPInstance" }, { UID_PETColorPaletteSOPInstance, "PETColorPaletteSOPInstance" }, + { UID_SpringColorPaletteSOPInstance, "SpringColorPaletteSOPInstance" }, + { UID_SummerColorPaletteSOPInstance, "SummerColorPaletteSOPInstance" }, + { UID_FallColorPaletteSOPInstance, "FallColorPaletteSOPInstance" }, + { UID_WinterColorPaletteSOPInstance, "WinterColorPaletteSOPInstance" }, // Draft Supplements { UID_DRAFT_RTBeamsDeliveryInstructionStorage, "DRAFT_RTBeamsDeliveryInstructionStorage" }, @@ -532,8 +546,8 @@ static const int uidNameMap_size = OFstatic_cast(int, sizeof(uidNameMap) / sizeo /** an array of const strings containing all known Storage SOP Classes * that fit into the conventional PATIENT-STUDY-SERIES-INSTANCE information * model, i.e. everything a Storage SCP might want to store in a PACS. - * Special cases such as hanging protocol storage or the Storage SOP Class - * are not included in this list. + * Special cases such as the Hanging Protocol or Color Palette Storage SOP + * Class are not included in this list but in dcmNonPatientStorageSOPClassUIDs. * * THIS LIST CONTAINS ALL STORAGE SOP CLASSES INCLUDING RETIRED ONES * AND IS (MUCH) LARGER THAN 64 ENTRIES. @@ -562,6 +576,7 @@ const char* dcmAllStorageSOPClassUIDs[] = { UID_ContentAssessmentResultsStorage, UID_CornealTopographyMapStorage, UID_CTImageStorage, + UID_CTPerformedProcedureProtocolStorage, UID_DeformableSpatialRegistrationStorage, UID_DigitalIntraOralXRayImageStorageForPresentation, UID_DigitalIntraOralXRayImageStorageForProcessing, @@ -582,13 +597,10 @@ const char* dcmAllStorageSOPClassUIDs[] = { UID_ExtensibleSRStorage, UID_GeneralAudioWaveformStorage, UID_GeneralECGWaveformStorage, - UID_GenericImplantTemplateStorage, UID_GrayscalePlanarMPRVolumetricPresentationStateStorage, UID_GrayscaleSoftcopyPresentationStateStorage, UID_HemodynamicWaveformStorage, - UID_ImplantAssemblyTemplateStorage, UID_ImplantationPlanSRDocumentStorage, - UID_ImplantTemplateGroupStorage, UID_IntraocularLensCalculationsStorage, UID_IntravascularOpticalCoherenceTomographyImageStorageForPresentation, UID_IntravascularOpticalCoherenceTomographyImageStorageForProcessing, @@ -634,6 +646,7 @@ const char* dcmAllStorageSOPClassUIDs[] = { UID_RTTreatmentSummaryRecordStorage, UID_SecondaryCaptureImageStorage, UID_SegmentationStorage, + UID_SimplifiedAdultEchoSRStorage, UID_SpatialFiducialsStorage, UID_SpatialRegistrationStorage, UID_SpectaclePrescriptionReportStorage, @@ -663,6 +676,8 @@ const char* dcmAllStorageSOPClassUIDs[] = { UID_XRayAngiographicImageStorage, UID_XRayRadiationDoseSRStorage, UID_XRayRadiofluoroscopicImageStorage, + // non-patient DICOM objects: + // - do not add them here but in dcmNonPatientStorageSOPClassUIDs // retired UID_RETIRED_HardcopyColorImageStorage, UID_RETIRED_HardcopyGrayscaleImageStorage, @@ -699,7 +714,24 @@ const char* dcmAllStorageSOPClassUIDs[] = { NULL }; -const int numberOfAllDcmStorageSOPClassUIDs = OFstatic_cast(int, sizeof(dcmAllStorageSOPClassUIDs) / sizeof(const char*) - 1); +const int numberOfDcmAllStorageSOPClassUIDs = OFstatic_cast(int, sizeof(dcmAllStorageSOPClassUIDs) / sizeof(const char*) - 1); + + +/** an array of const strings containing all known Storage SOP Classes + * that do not fit into the conventional PATIENT-STUDY-SERIES-INSTANCE + * information model. See function dcmIsaStorageSOPClassUID(). + */ + +const char* dcmNonPatientStorageSOPClassUIDs[] = { + UID_ColorPaletteStorage, + UID_CTDefinedProcedureProtocolStorage, + UID_GenericImplantTemplateStorage, + UID_HangingProtocolStorage, + UID_ImplantAssemblyTemplateStorage, + UID_ImplantTemplateGroupStorage, + // end marker (important!) + NULL +}; /* an array of const strings containing all storage SOP classes that @@ -745,17 +777,17 @@ const char* dcmLongSCUStorageSOPClassUIDs[] = { UID_EnhancedXRFImageStorage, UID_GeneralAudioWaveformStorage, UID_GeneralECGWaveformStorage, - UID_GenericImplantTemplateStorage, UID_GrayscaleSoftcopyPresentationStateStorage, UID_HemodynamicWaveformStorage, - UID_ImplantAssemblyTemplateStorage, UID_ImplantationPlanSRDocumentStorage, - UID_ImplantTemplateGroupStorage, UID_IntraocularLensCalculationsStorage, UID_IntravascularOpticalCoherenceTomographyImageStorageForPresentation, UID_IntravascularOpticalCoherenceTomographyImageStorageForProcessing, UID_KeratometryMeasurementsStorage, UID_KeyObjectSelectionDocumentStorage, + UID_LegacyConvertedEnhancedCTImageStorage, + UID_LegacyConvertedEnhancedMRImageStorage, + UID_LegacyConvertedEnhancedPETImageStorage, UID_LensometryMeasurementsStorage, UID_MacularGridThicknessAndVolumeReportStorage, UID_MammographyCADSRStorage, @@ -823,17 +855,23 @@ const char* dcmLongSCUStorageSOPClassUIDs[] = { // UID_CompositingPlanarMPRVolumetricPresentationStateStorage, // UID_ContentAssessmentResultsStorage, // UID_CornealTopographyMapStorage, +// UID_CTPerformedProcedureProtocolStorage, // UID_ExtensibleSRStorage, // UID_GrayscalePlanarMPRVolumetricPresentationStateStorage -// UID_LegacyConvertedEnhancedCTImageStorage, -// UID_LegacyConvertedEnhancedMRImageStorage, -// UID_LegacyConvertedEnhancedPETImageStorage, // UID_ParametricMapStorage, // UID_RadiopharmaceuticalRadiationDoseSRStorage, // UID_RTBrachyApplicationSetupDeliveryInstructionStorage, +// UID_SimplifiedAdultEchoSRStorage, // UID_TractographyResultsStorage, // UID_WideFieldOphthalmicPhotographyStereographicProjectionImageStorage, // UID_WideFieldOphthalmicPhotography3DCoordinatesImageStorage, + // non-patient +// UID_ColorPaletteStorage, +// UID_CTDefinedProcedureProtocolStorage, +// UID_GenericImplantTemplateStorage, +// UID_HangingProtocolStorage, +// UID_ImplantAssemblyTemplateStorage, +// UID_ImplantTemplateGroupStorage, // retired UID_RETIRED_HardcopyColorImageStorage, UID_RETIRED_HardcopyGrayscaleImageStorage, @@ -1078,6 +1116,7 @@ static const DcmModalityTable modalities[] = { { UID_CardiacElectrophysiologyWaveformStorage, "WVc", 4096 }, { UID_ChestCADSRStorage, "SRh", 4096 }, { UID_ColonCADSRStorage, "SRo", 4096 }, + { UID_ColorPaletteStorage, "CP", 4096 }, { UID_ColorSoftcopyPresentationStateStorage, "PSc", 4096 }, { UID_CompositingPlanarMPRVolumetricPresentationStateStorage, "VPc", 4096 }, { UID_Comprehensive3DSRStorage, "SR3", 4096 }, @@ -1085,7 +1124,9 @@ static const DcmModalityTable modalities[] = { { UID_ComputedRadiographyImageStorage, "CR", 2048 * 2048 * 2 }, { UID_ContentAssessmentResultsStorage, "AS", 4096 }, { UID_CornealTopographyMapStorage, "CM", 512 * 512 }, + { UID_CTDefinedProcedureProtocolStorage, "PPd", 4096 }, { UID_CTImageStorage, "CT", 512 * 512 * 2 }, + { UID_CTPerformedProcedureProtocolStorage, "PPp", 4096 }, { UID_DeformableSpatialRegistrationStorage, "RGd", 4096 }, { UID_DigitalIntraOralXRayImageStorageForPresentation, "DXo", 1024 * 1024 * 2 }, { UID_DigitalIntraOralXRayImageStorageForProcessing, "DPo", 1024 * 1024 * 2 }, @@ -1109,6 +1150,7 @@ static const DcmModalityTable modalities[] = { { UID_GenericImplantTemplateStorage, "IT", 4096 }, { UID_GrayscalePlanarMPRVolumetricPresentationStateStorage, "VPg", 4096 }, { UID_GrayscaleSoftcopyPresentationStateStorage, "PSg", 4096 }, + { UID_HangingProtocolStorage, "HP", 4096 }, { UID_HemodynamicWaveformStorage, "WVh", 4096 }, { UID_ImplantAssemblyTemplateStorage, "ITa", 4096 }, { UID_ImplantationPlanSRDocumentStorage, "SRi", 4096 }, @@ -1158,6 +1200,7 @@ static const DcmModalityTable modalities[] = { { UID_RTTreatmentSummaryRecordStorage, "RTs", 4096 }, { UID_SecondaryCaptureImageStorage, "SC", 512 * 512 * 2 }, { UID_SegmentationStorage, "SG", 4096 }, + { UID_SimplifiedAdultEchoSRStorage, "SRu", 4096 }, { UID_SpatialFiducialsStorage, "FID", 4096 }, { UID_SpatialRegistrationStorage, "RGs", 4096 }, { UID_SpectaclePrescriptionReportStorage, "SRs", 4096 }, @@ -1302,15 +1345,35 @@ dcmFindUIDFromName(const char* name) /* ** dcmIsaStorageSOPClassUID(const char* uid) ** Returns true if the uid is one of the Storage SOP Classes. -** Performs a table lookup in the dcmAllStorageSOPClassUIDs table. +** Performs a table lookup in the dcmAllStorageSOPClassUIDs, +** dcmNonPatientStorageSOPClassUIDs and/or dcmImageSOPClassUIDs table. */ OFBool -dcmIsaStorageSOPClassUID(const char* uid) +dcmIsaStorageSOPClassUID(const char* uid, const E_StorageSOPClassType type) { if (uid == NULL) return OFFalse; - for (int i = 0; i < numberOfAllDcmStorageSOPClassUIDs; i++) { - if (dcmAllStorageSOPClassUIDs[i] != NULL && strcmp(uid, dcmAllStorageSOPClassUIDs[i]) == 0) { - return OFTrue; + /* check for patient object */ + if (type & ESSC_Patient) { + for (int i = 0; i < numberOfDcmAllStorageSOPClassUIDs; i++) { + if (dcmAllStorageSOPClassUIDs[i] != NULL && strcmp(uid, dcmAllStorageSOPClassUIDs[i]) == 0) { + return OFTrue; + } + } + } + /* check for non-patient object */ + if (type & ESSC_NonPatient) { + for (int i = 0; dcmNonPatientStorageSOPClassUIDs[i] != NULL; i++) { + if (strcmp(uid, dcmNonPatientStorageSOPClassUIDs[i]) == 0) { + return OFTrue; + } + } + } + /* check for image object */ + if (type & ESSC_Image) { + for (int i = 0; i < numberOfDcmImageSOPClassUIDs; i++) { + if (dcmImageSOPClassUIDs[i] != NULL && strcmp(uid, dcmImageSOPClassUIDs[i]) == 0) { + return OFTrue; + } } } return OFFalse; @@ -1320,18 +1383,11 @@ dcmIsaStorageSOPClassUID(const char* uid) /* ** dcmIsImageStorageSOPClassUID(const char* uid) ** Returns true if the uid is one of the Image Storage SOP Classes. -** Performs a table lookup in the dcmImageSOPClassUIDs table. */ OFBool dcmIsImageStorageSOPClassUID(const char* uid) { - if (uid == NULL) return OFFalse; - for (int i = 0; i < numberOfDcmImageSOPClassUIDs; i++) { - if (dcmImageSOPClassUIDs[i] != NULL && strcmp(uid, dcmImageSOPClassUIDs[i]) == 0) { - return OFTrue; - } - } - return OFFalse; + return dcmIsaStorageSOPClassUID(uid, ESSC_Image); } // ******************************** diff --git a/dcmdata/libsrc/dcvr.cc b/dcmdata/libsrc/dcvr.cc index 5d33fb31..9765c9b3 100644 --- a/dcmdata/libsrc/dcvr.cc +++ b/dcmdata/libsrc/dcvr.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -71,92 +71,97 @@ void dcmDisableGenerationOfNewVRs() ** VR property table */ -#define DCMVR_PROP_NONE 0x00 -#define DCMVR_PROP_NONSTANDARD 0x01 -#define DCMVR_PROP_INTERNAL 0x02 +#define DCMVR_PROP_NONE 0x00 +#define DCMVR_PROP_NONSTANDARD 0x01 +#define DCMVR_PROP_INTERNAL 0x02 #define DCMVR_PROP_EXTENDEDLENGTHENCODING 0x04 -#define DCMVR_PROP_ISASTRING 0x08 +#define DCMVR_PROP_ISASTRING 0x08 +#define DCMVR_PROP_ISAFFECTEDBYCHARSET 0x10 struct DcmVREntry { - DcmEVR vr; // Enumeration Value of Value representation - const char* vrName; // Name of Value representation - size_t fValWidth; // Length of minimal unit, used for swapping - int propertyFlags; // Normal, internal, non-standard vr - Uint32 minValueLength; // Minimum length of a single value (bytes) - Uint32 maxValueLength; // Maximum length of a single value (bytes) + DcmEVR vr; // Enumeration Value of Value representation + const char* vrName; // Name of Value representation + const OFString* delimiterChars; // Delimiter characters, switch to default charset + size_t fValWidth; // Length of minimal unit, used for swapping + int propertyFlags; // Normal, internal, non-standard vr + Uint32 minValueLength; // Minimum length of a single value (bytes) + Uint32 maxValueLength; // Maximum length of a single value (bytes) }; +static const OFString noDelimiters; // none +static const OFString bsDelimiter("\\"); // backslash +static const OFString pnDelimiters("\\^="); // person name static const DcmVREntry DcmVRDict[] = { - { EVR_AE, "AE", sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, - { EVR_AS, "AS", sizeof(char), DCMVR_PROP_ISASTRING, 4, 4 }, - { EVR_AT, "AT", sizeof(Uint16), DCMVR_PROP_NONE, 4, 4 }, - { EVR_CS, "CS", sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, - { EVR_DA, "DA", sizeof(char), DCMVR_PROP_ISASTRING, 8, 10 }, - { EVR_DS, "DS", sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, - { EVR_DT, "DT", sizeof(char), DCMVR_PROP_ISASTRING, 0, 26}, - { EVR_FL, "FL", sizeof(Float32), DCMVR_PROP_NONE, 4, 4 }, - { EVR_FD, "FD", sizeof(Float64), DCMVR_PROP_NONE, 8, 8 }, - { EVR_IS, "IS", sizeof(char), DCMVR_PROP_ISASTRING, 0, 12 }, - { EVR_LO, "LO", sizeof(char), DCMVR_PROP_ISASTRING, 0, 64 }, - { EVR_LT, "LT", sizeof(char), DCMVR_PROP_ISASTRING, 0, 10240 }, - { EVR_OB, "OB", sizeof(Uint8), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_OD, "OD", sizeof(Float64), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_OF, "OF", sizeof(Float32), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_OL, "OL", sizeof(Uint32), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_OW, "OW", sizeof(Uint16), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_PN, "PN", sizeof(char), DCMVR_PROP_ISASTRING, 0, 64 }, - { EVR_SH, "SH", sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, - { EVR_SL, "SL", sizeof(Sint32), DCMVR_PROP_NONE, 4, 4 }, - { EVR_SQ, "SQ", 0, DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_SS, "SS", sizeof(Sint16), DCMVR_PROP_NONE, 2, 2 }, - { EVR_ST, "ST", sizeof(char), DCMVR_PROP_ISASTRING, 0, 1024 }, - { EVR_TM, "TM", sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, - { EVR_UC, "UC", sizeof(char), DCMVR_PROP_ISASTRING|DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_UI, "UI", sizeof(char), DCMVR_PROP_ISASTRING, 0, 64 }, - { EVR_UL, "UL", sizeof(Uint32), DCMVR_PROP_NONE, 4, 4 }, - { EVR_UR, "UR", sizeof(char), DCMVR_PROP_ISASTRING|DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_US, "US", sizeof(Uint16), DCMVR_PROP_NONE, 2, 2 }, - { EVR_UT, "UT", sizeof(char), DCMVR_PROP_ISASTRING|DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_ox, "ox", sizeof(Uint8), DCMVR_PROP_NONSTANDARD | DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_xs, "xs", sizeof(Uint16), DCMVR_PROP_NONSTANDARD, 2, 2 }, - { EVR_lt, "lt", sizeof(Uint16), DCMVR_PROP_NONSTANDARD | DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, - { EVR_na, "na", 0, DCMVR_PROP_NONSTANDARD, 0, 0 }, - { EVR_up, "up", sizeof(Uint32), DCMVR_PROP_NONSTANDARD, 4, 4 }, + { EVR_AE, "AE", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, + { EVR_AS, "AS", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 4, 4 }, + { EVR_AT, "AT", &noDelimiters, sizeof(Uint16), DCMVR_PROP_NONE, 4, 4 }, + { EVR_CS, "CS", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, + { EVR_DA, "DA", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 8, 10 }, + { EVR_DS, "DS", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, + { EVR_DT, "DT", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 0, 26}, + { EVR_FL, "FL", &noDelimiters, sizeof(Float32), DCMVR_PROP_NONE, 4, 4 }, + { EVR_FD, "FD", &noDelimiters, sizeof(Float64), DCMVR_PROP_NONE, 8, 8 }, + { EVR_IS, "IS", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 0, 12 }, + { EVR_LO, "LO", &bsDelimiter, sizeof(char), DCMVR_PROP_ISASTRING | DCMVR_PROP_ISAFFECTEDBYCHARSET, 0, 64 }, + { EVR_LT, "LT", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING | DCMVR_PROP_ISAFFECTEDBYCHARSET, 0, 10240 }, + { EVR_OB, "OB", &noDelimiters, sizeof(Uint8), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_OD, "OD", &noDelimiters, sizeof(Float64), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_OF, "OF", &noDelimiters, sizeof(Float32), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_OL, "OL", &noDelimiters, sizeof(Uint32), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_OW, "OW", &noDelimiters, sizeof(Uint16), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_PN, "PN", &pnDelimiters, sizeof(char), DCMVR_PROP_ISASTRING | DCMVR_PROP_ISAFFECTEDBYCHARSET, 0, 64 }, + { EVR_SH, "SH", &bsDelimiter, sizeof(char), DCMVR_PROP_ISASTRING | DCMVR_PROP_ISAFFECTEDBYCHARSET, 0, 16 }, + { EVR_SL, "SL", &noDelimiters, sizeof(Sint32), DCMVR_PROP_NONE, 4, 4 }, + { EVR_SQ, "SQ", &noDelimiters, 0, DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_SS, "SS", &noDelimiters, sizeof(Sint16), DCMVR_PROP_NONE, 2, 2 }, + { EVR_ST, "ST", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING | DCMVR_PROP_ISAFFECTEDBYCHARSET, 0, 1024 }, + { EVR_TM, "TM", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 0, 16 }, + { EVR_UC, "UC", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING | DCMVR_PROP_EXTENDEDLENGTHENCODING | DCMVR_PROP_ISAFFECTEDBYCHARSET, 0, DCM_UndefinedLength }, + { EVR_UI, "UI", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING, 0, 64 }, + { EVR_UL, "UL", &noDelimiters, sizeof(Uint32), DCMVR_PROP_NONE, 4, 4 }, + { EVR_UR, "UR", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING|DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_US, "US", &noDelimiters, sizeof(Uint16), DCMVR_PROP_NONE, 2, 2 }, + { EVR_UT, "UT", &noDelimiters, sizeof(char), DCMVR_PROP_ISASTRING | DCMVR_PROP_EXTENDEDLENGTHENCODING | DCMVR_PROP_ISAFFECTEDBYCHARSET, 0, DCM_UndefinedLength }, + { EVR_ox, "ox", &noDelimiters, sizeof(Uint8), DCMVR_PROP_NONSTANDARD | DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_xs, "xs", &noDelimiters, sizeof(Uint16), DCMVR_PROP_NONSTANDARD, 2, 2 }, + { EVR_lt, "lt", &noDelimiters, sizeof(Uint16), DCMVR_PROP_NONSTANDARD | DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_na, "na", &noDelimiters, 0, DCMVR_PROP_NONSTANDARD, 0, 0 }, + { EVR_up, "up", &noDelimiters, sizeof(Uint32), DCMVR_PROP_NONSTANDARD, 4, 4 }, /* unique prefixes have been "invented" for the following internal VRs */ - { EVR_item, "it_EVR_item", 0, + { EVR_item, "it_EVR_item", &noDelimiters, 0, DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, 0 }, - { EVR_metainfo, "mi_EVR_metainfo", 0, + { EVR_metainfo, "mi_EVR_metainfo", &noDelimiters, 0, DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, 0 }, - { EVR_dataset, "ds_EVR_dataset", 0, + { EVR_dataset, "ds_EVR_dataset", &noDelimiters, 0, DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, 0 }, - { EVR_fileFormat, "ff_EVR_fileFormat", 0, + { EVR_fileFormat, "ff_EVR_fileFormat", &noDelimiters, 0, DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, 0 }, - { EVR_dicomDir, "dd_EVR_dicomDir", 0, + { EVR_dicomDir, "dd_EVR_dicomDir", &noDelimiters, 0, DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, 0 }, - { EVR_dirRecord, "dr_EVR_dirRecord", 0, + { EVR_dirRecord, "dr_EVR_dirRecord", &noDelimiters, 0, DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, 0 }, - { EVR_pixelSQ, "ps_EVR_pixelSQ", sizeof(Uint8), + { EVR_pixelSQ, "ps_EVR_pixelSQ", &noDelimiters, sizeof(Uint8), DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, DCM_UndefinedLength }, /* Moved from internal use to non standard only: necessary to distinguish from "normal" OB */ - { EVR_pixelItem, "pi", sizeof(Uint8), + { EVR_pixelItem, "pi", &noDelimiters, sizeof(Uint8), DCMVR_PROP_NONSTANDARD, 0, DCM_UndefinedLength }, - { EVR_UNKNOWN, "??", sizeof(Uint8), /* EVR_UNKNOWN (i.e. "future" VRs) should be mapped to UN or OB */ + { EVR_UNKNOWN, "??", &noDelimiters, sizeof(Uint8), /* EVR_UNKNOWN (i.e. "future" VRs) should be mapped to UN or OB */ DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL | DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, /* Unknown Value Representation */ - { EVR_UN, "UN", sizeof(Uint8), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, + { EVR_UN, "UN", &noDelimiters, sizeof(Uint8), DCMVR_PROP_EXTENDEDLENGTHENCODING, 0, DCM_UndefinedLength }, /* Pixel Data - only used in ident() */ - { EVR_PixelData, "PixelData", 0, DCMVR_PROP_INTERNAL, 0, DCM_UndefinedLength }, + { EVR_PixelData, "PixelData", &noDelimiters, 0, DCMVR_PROP_INTERNAL, 0, DCM_UndefinedLength }, /* Overlay Data - only used in ident() */ - { EVR_OverlayData, "OverlayData", 0, DCMVR_PROP_INTERNAL, 0, DCM_UndefinedLength }, + { EVR_OverlayData, "OverlayData", &noDelimiters, 0, DCMVR_PROP_INTERNAL, 0, DCM_UndefinedLength }, - { EVR_UNKNOWN2B, "??", sizeof(Uint8), /* illegal VRs, we assume no extended length coding */ + { EVR_UNKNOWN2B, "??", &noDelimiters, sizeof(Uint8), /* illegal VRs, we assume no extended length coding */ DCMVR_PROP_NONSTANDARD | DCMVR_PROP_INTERNAL, 0, DCM_UndefinedLength }, }; @@ -449,3 +454,15 @@ DcmVR::isEquivalent(const DcmVR& avr) const } return result; } + +OFBool +DcmVR::isAffectedBySpecificCharacterSet() const +{ + return (DcmVRDict[vr].propertyFlags & DCMVR_PROP_ISAFFECTEDBYCHARSET) ? OFTrue : OFFalse; +} + +const OFString& +DcmVR::getDelimiterChars() const +{ + return *DcmVRDict[vr].delimiterChars; +} diff --git a/dcmdata/libsrc/dcvrat.cc b/dcmdata/libsrc/dcvrat.cc index 32c44220..afca44ae 100644 --- a/dcmdata/libsrc/dcvrat.cc +++ b/dcmdata/libsrc/dcvrat.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -23,15 +23,20 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #include "dcmtk/ofstd/ofstream.h" #include "dcmtk/dcmdata/dcvrat.h" +#include "dcmtk/dcmdata/dcjson.h" #define INCLUDE_CSTDIO #define INCLUDE_CSTRING #include "dcmtk/ofstd/ofstdinc.h" - // ******************************** +DcmAttributeTag::DcmAttributeTag(const DcmTag &tag) + : DcmElement(tag, 0) +{ +} + DcmAttributeTag::DcmAttributeTag(const DcmTag &tag, const Uint32 len) : DcmElement(tag, len) @@ -248,6 +253,46 @@ OFCondition DcmAttributeTag::writeXML(STD_NAMESPACE ostream &out, // ******************************** +OFCondition DcmAttributeTag::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + // always write JSON Opener + DcmElement::writeJsonOpener(out, format); + Uint16 *uintVals; + getUint16Array(uintVals); + const unsigned long vm = getVM(); + // check for empty/invalid value + if ((uintVals != NULL) && (vm > 0)) + { + format.printValuePrefix(out); + out << STD_NAMESPACE uppercase << STD_NAMESPACE setfill('0'); + // print tag values "ggggeeee" in hex mode (upper case!) + out << "\""; + out << STD_NAMESPACE hex << STD_NAMESPACE setw(4) << (*(uintVals++)); + out << STD_NAMESPACE setw(4) << (*(uintVals++)) << STD_NAMESPACE dec; + out << "\""; + for (unsigned long valNo = 1; valNo < vm; valNo++) + { + format.printNextArrayElementPrefix(out); + out << "\""; + out << STD_NAMESPACE hex << STD_NAMESPACE setw(4) << (*(uintVals++)); + out << STD_NAMESPACE setw(4) << (*(uintVals++)) << STD_NAMESPACE dec; + out << "\""; + } + // reset i/o manipulators + out << STD_NAMESPACE nouppercase << STD_NAMESPACE setfill(' '); + format.printValueSuffix(out); + } + // write normal JSON closer + DcmElement::writeJsonCloser(out, format); + // always report success + return EC_Normal; +} + + +// ******************************** + + OFCondition DcmAttributeTag::getTagVal(DcmTagKey &tagVal, const unsigned long pos) { diff --git a/dcmdata/libsrc/dcvrda.cc b/dcmdata/libsrc/dcvrda.cc index 4da50b54..fdead9bc 100644 --- a/dcmdata/libsrc/dcvrda.cc +++ b/dcmdata/libsrc/dcvrda.cc @@ -193,37 +193,74 @@ OFCondition DcmDate::getDicomDateFromOFDate(const OFDate &dateValue, return l_error; } +OFCondition DcmDate::getOFDateFromString(const OFString &dicomDate, + OFDate &dateValue) +{ + return getOFDateFromString(dicomDate.c_str(), dicomDate.size(), dateValue, OFTrue); +} OFCondition DcmDate::getOFDateFromString(const OFString &dicomDate, OFDate &dateValue, const OFBool supportOldFormat) { - OFCondition l_error = EC_IllegalParameter; - /* clear result variable */ + return getOFDateFromString(dicomDate.c_str(), dicomDate.size(), dateValue, supportOldFormat); +} + +OFCondition DcmDate::getOFDateFromString(const char* dicomDate, + const size_t dicomDateSize, + OFDate &dateValue) +{ + return getOFDateFromString(dicomDate, dicomDateSize, dateValue, OFTrue); +} + +OFCondition DcmDate::getOFDateFromString(const char* dicomDate, + const size_t dicomDateSize, + OFDate &dateValue, + const OFBool supportOldFormat) +{ + // clear result variable dateValue.clear(); - /* fixed length (8 or 10 bytes) required by DICOM part 5 */ - if ((dicomDate.length() == 8) && (dicomDate.find('.') == OFString_npos)) + // fixed length 8 bytes required by DICOM part 5: YYYYMMDD + if (dicomDateSize == 8 && OFStandard::checkDigits<8>(dicomDate)) { - unsigned int year, month, day; - /* extract components from date string */ - if (sscanf(dicomDate.c_str(), "%04u%02u%02u", &year, &month, &day) == 3) + // extract components from date string + if + ( + dateValue.setDate + ( + OFStandard::extractDigits(dicomDate), + OFStandard::extractDigits(dicomDate + 4), + OFStandard::extractDigits(dicomDate + 6) + ) + ) { - if (dateValue.setDate(year, month, day)) - l_error = EC_Normal; + return EC_Normal; } } - /* old prior V3.0 version of VR=DA: YYYY.MM.DD */ - else if (supportOldFormat && (dicomDate.length() == 10) && (dicomDate[4] == '.') && (dicomDate[7] == '.')) + // old prior V3.0 version of VR=DA with fixed length 10 bytes: YYYY.MM.DD + else if + ( + supportOldFormat && dicomDateSize == 10 && dicomDate[4] == '.' && dicomDate[7] == '.' && + OFStandard::checkDigits<4>(dicomDate) && + OFStandard::checkDigits<2>(dicomDate + 5) && + OFStandard::checkDigits<2>(dicomDate + 8) + ) { - unsigned int year, month, day; - /* extract components from date string */ - if (sscanf(dicomDate.c_str(), "%04u.%02u.%02u", &year, &month, &day) == 3) + // extract components from date string + if + ( + dateValue.setDate + ( + OFStandard::extractDigits(dicomDate), + OFStandard::extractDigits(dicomDate + 5), + OFStandard::extractDigits(dicomDate + 8) + ) + ) { - if (dateValue.setDate(year, month, day)) - l_error = EC_Normal; + return EC_Normal; } } - return l_error; + return EC_IllegalParameter; } diff --git a/dcmdata/libsrc/dcvrds.cc b/dcmdata/libsrc/dcvrds.cc index 937f946d..e8895e76 100644 --- a/dcmdata/libsrc/dcvrds.cc +++ b/dcmdata/libsrc/dcvrds.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -23,6 +23,7 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #include "dcmtk/dcmdata/dcvrds.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/ofstd/ofstring.h" #include "dcmtk/ofstd/ofstd.h" @@ -220,6 +221,58 @@ OFCondition DcmDecimalString::writeXML(STD_NAMESPACE ostream &out, // ******************************** +OFCondition DcmDecimalString::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + writeJsonOpener(out, format); + /* write element value (if loaded) */ + if (valueLoaded()) + { + OFString bulkDataValue; + if (format.asBulkDataURI(getTag(), bulkDataValue)) + { + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, bulkDataValue); + } + else + { + /* get string data (without normalization) */ + char *value_ = OFnullptr; + Uint32 length = 0; + getString(value_, length); + if ((value_ != OFnullptr) && (length > 0)) + { + /* explicitly convert to OFString because of possible NULL bytes */ + OFString value(value_, length); + OFCondition status = getOFString(value, 0L); + if (status.bad()) + return status; + format.printValuePrefix(out); + DcmJsonFormat::printNumberDecimal(out, value); + const unsigned long vm = getVM(); + for (unsigned long valNo = 1; valNo < vm; ++valNo) + { + status = getOFString(value, valNo); + if (status.bad()) + return status; + format.printNextArrayElementPrefix(out); + DcmJsonFormat::printNumberDecimal(out, value); + } + format.printValueSuffix(out); + } + } + } + /* write JSON Closer */ + writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} + + +// ******************************** + + OFCondition DcmDecimalString::checkStringValue(const OFString &value, const OFString &vm) { diff --git a/dcmdata/libsrc/dcvrdt.cc b/dcmdata/libsrc/dcvrdt.cc index 160c1c1c..a9175560 100644 --- a/dcmdata/libsrc/dcvrdt.cc +++ b/dcmdata/libsrc/dcvrdt.cc @@ -225,45 +225,66 @@ OFCondition DcmDateTime::getDicomDateTimeFromOFDateTime(const OFDateTime &dateTi return l_error; } - OFCondition DcmDateTime::getOFDateTimeFromString(const OFString &dicomDateTime, OFDateTime &dateTimeValue) { - OFCondition l_error = EC_IllegalParameter; - /* clear result variable */ + return getOFDateTimeFromString(dicomDateTime.c_str(), dicomDateTime.size(), dateTimeValue); +} + +OFCondition DcmDateTime::getOFDateTimeFromString(const char *dicomDateTime, + size_t dicomDateTimeSize, + OFDateTime &dateTimeValue) +{ + // clear result variable dateTimeValue.clear(); - /* minimal check for valid format: YYYYMMDD */ - if (dicomDateTime.length() >= 8) + /* minimal check for valid format: YYYY */ + if (dicomDateTimeSize < 4 || !OFStandard::checkDigits<4>(dicomDateTime)) + return EC_IllegalParameter; + unsigned int month = 1; + unsigned int day = 1; + double timeZone; + // check for/extract time zone + if (dicomDateTimeSize >= 9 && DcmTime::getTimeZoneFromString(dicomDateTime + dicomDateTimeSize - 5, 5, timeZone).good()) + dicomDateTimeSize -= 5; + else + timeZone = OFTime::getLocalTimeZone(); + switch(dicomDateTimeSize) { - OFString string; - unsigned int year, month, day; - unsigned int hour = 0; - unsigned int minute = 0; - double second = 0; - double timeZone = 0; - /* check whether optional time zone is present and extract the value if so */ - if (DcmTime::getTimeZoneFromString(dicomDateTime.substr(dicomDateTime.length() - 5), timeZone).good()) - string = dicomDateTime.substr(0, dicomDateTime.length() - 5); - else + default: + // check whether a time value is contained or it is simply an error + if (dicomDateTimeSize >= 10) { - string = dicomDateTime; - /* no time zone specified, therefore, use the local one */ - timeZone = OFTime::getLocalTimeZone(); + OFCondition status = DcmTime::getOFTimeFromString(dicomDateTime + 8, + dicomDateTimeSize - 8, + dateTimeValue.Time, + OFFalse, // no support for HH:MM:SS in VR=DT + timeZone); + if (status.bad()) + return status; } - /* extract remaining components from date/time string: YYYYMMDDHHMM[SS[.FFFFFF]] */ - /* scan seconds using OFStandard::atof to avoid locale issues */ - if (sscanf(string.c_str(), "%04u%02u%02u%02u%02u", &year, &month, &day, &hour, &minute) >= 3) + else break; + + case 8: + if (OFStandard::checkDigits<2>(dicomDateTime + 6)) + day = OFStandard::extractDigits(dicomDateTime + 6); + else + break; + case 6: + if (OFStandard::checkDigits<2>(dicomDateTime + 4)) + month = OFStandard::extractDigits(dicomDateTime + 4); + else + break; + case 4: + if (dateTimeValue.Date.setDate(OFStandard::extractDigits(dicomDateTime), month, day)) { - if (string.length() > 12) - { - string.erase(0, 12); - second = OFStandard::atof(string.c_str()); - } - if (dateTimeValue.setDateTime(year, month, day, hour, minute, second, timeZone)) - l_error = EC_Normal; + // set timezone if it hasn't been set + if (dicomDateTimeSize <= 8) + dateTimeValue.Time.setTimeZone(timeZone); + return EC_Normal; } + break; } - return l_error; + return EC_IllegalParameter; } diff --git a/dcmdata/libsrc/dcvrfd.cc b/dcmdata/libsrc/dcvrfd.cc index a408dfa4..dc6e9f37 100644 --- a/dcmdata/libsrc/dcvrfd.cc +++ b/dcmdata/libsrc/dcvrfd.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -33,6 +33,11 @@ // ******************************** +DcmFloatingPointDouble::DcmFloatingPointDouble(const DcmTag &tag) + : DcmElement(tag, 0) +{ +} + DcmFloatingPointDouble::DcmFloatingPointDouble(const DcmTag &tag, const Uint32 len) diff --git a/dcmdata/libsrc/dcvrfl.cc b/dcmdata/libsrc/dcvrfl.cc index 070719fb..92348264 100644 --- a/dcmdata/libsrc/dcvrfl.cc +++ b/dcmdata/libsrc/dcvrfl.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -33,6 +33,11 @@ // ******************************** +DcmFloatingPointSingle::DcmFloatingPointSingle(const DcmTag &tag) + : DcmElement(tag, 0) +{ +} + DcmFloatingPointSingle::DcmFloatingPointSingle(const DcmTag &tag, const Uint32 len) diff --git a/dcmdata/libsrc/dcvris.cc b/dcmdata/libsrc/dcvris.cc index 941775b3..8d72d21e 100644 --- a/dcmdata/libsrc/dcvris.cc +++ b/dcmdata/libsrc/dcvris.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2010, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -22,6 +22,7 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #include "dcmtk/dcmdata/dcvris.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/ofstd/ofstring.h" #define INCLUDE_CSTDIO @@ -140,3 +141,55 @@ OFCondition DcmIntegerString::checkStringValue(const OFString &value, { return DcmByteString::checkStringValue(value, vm, "is", 8, MAX_IS_LENGTH); } + + +// ******************************** + + +OFCondition DcmIntegerString::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + writeJsonOpener(out, format); + /* write element value (if loaded) */ + if (valueLoaded()) + { + OFString bulkDataValue; + if (format.asBulkDataURI(getTag(), bulkDataValue)) + { + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, bulkDataValue); + } + else + { + /* get string data (without normalization) */ + char *value_ = NULL; + Uint32 length = 0; + getString(value_, length); + if ((value_ != NULL) && (length > 0)) + { + /* explicitly convert to OFString because of possible NULL bytes */ + OFString value(value_, length); + OFCondition status = getOFString(value, 0L); + if (status.bad()) + return status; + format.printValuePrefix(out); + DcmJsonFormat::printNumberInteger(out, value); + const unsigned long vm = getVM(); + for (unsigned long valNo = 1; valNo < vm; ++valNo) + { + status = getOFString(value, valNo); + if (status.bad()) + return status; + format.printNextArrayElementPrefix(out); + DcmJsonFormat::printNumberInteger(out, value); + } + format.printValueSuffix(out); + } + } + } + /* write JSON Closer */ + writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} diff --git a/dcmdata/libsrc/dcvrlo.cc b/dcmdata/libsrc/dcvrlo.cc index 5d200174..c34a6230 100644 --- a/dcmdata/libsrc/dcvrlo.cc +++ b/dcmdata/libsrc/dcvrlo.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2013, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -22,6 +22,7 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcvrlo.h" @@ -34,7 +35,6 @@ DcmLongString::DcmLongString(const DcmTag &tag, { setMaxLength(64); setNonSignificantChars(" \\"); - setDelimiterChars("\\"); } @@ -116,3 +116,47 @@ OFCondition DcmLongString::checkStringValue(const OFString &value, { return DcmByteString::checkStringValue(value, vm, "lo", 12, 0 /* maxLen: no check */, charset); } + + +// ******************************** + + +OFCondition DcmLongString::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + DcmElement::writeJsonOpener(out, format); + /* write element value (if non-empty) */ + if (!isEmpty()) + { + OFString value; + OFCondition status = getOFString(value, 0L); + if (status.bad()) + return status; + format.printValuePrefix(out); + DcmJsonFormat::printValueString(out, value); + const unsigned long vm = getVM(); + for (unsigned long valNo = 1; valNo < vm; ++valNo) + { + status = getOFString(value, valNo); + if (status.bad()) + return status; + format.printNextArrayElementPrefix(out); + DcmJsonFormat::printValueString(out, value); + } + format.printValueSuffix(out); + } + /* write JSON Closer */ + DcmElement::writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} + + +// ******************************** + + +const OFString& DcmLongString::getDelimiterChars() const +{ + return DcmVR(EVR_LO).getDelimiterChars(); +} diff --git a/dcmdata/libsrc/dcvrobow.cc b/dcmdata/libsrc/dcvrobow.cc index 3818d345..00e33fb3 100644 --- a/dcmdata/libsrc/dcvrobow.cc +++ b/dcmdata/libsrc/dcvrobow.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -26,6 +26,7 @@ #include "dcmtk/ofstd/ofstream.h" #include "dcmtk/ofstd/ofuuid.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcvrobow.h" #include "dcmtk/dcmdata/dcdeftag.h" #include "dcmtk/dcmdata/dcswap.h" @@ -40,6 +41,13 @@ // ******************************** +DcmOtherByteOtherWord::DcmOtherByteOtherWord(const DcmTag &tag) +: DcmElement(tag, 0) +, compactAfterTransfer(OFFalse) +{ +} + + DcmOtherByteOtherWord::DcmOtherByteOtherWord(const DcmTag &tag, const Uint32 len) : DcmElement(tag, len) @@ -477,7 +485,7 @@ OFCondition DcmOtherByteOtherWord::getUint8(Uint8 &byteVal, } /* clear value in case of error */ if (errorFlag.bad()) - byteVal = 0; + byteVal = 0; return errorFlag; } @@ -513,7 +521,7 @@ OFCondition DcmOtherByteOtherWord::getUint16(Uint16 &wordVal, } /* clear value in case of error */ if (errorFlag.bad()) - wordVal = 0; + wordVal = 0; return errorFlag; } @@ -813,3 +821,38 @@ OFCondition DcmOtherByteOtherWord::writeXML(STD_NAMESPACE ostream &out, /* always report success */ return EC_Normal; } + + +// ******************************** + + +OFCondition DcmOtherByteOtherWord::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* write JSON Opener */ + writeJsonOpener(out, format); + /* for an empty value field, we do not need to do anything */ + if (getLengthField() > 0) + { + OFString value; + if (format.asBulkDataURI(getTag(), value)) + { + /* return defined BulkDataURI */ + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, value); + } + else + { + /* encode binary data as Base64 */ + format.printInlineBinaryPrefix(out); + out << "\""; + Uint8 *byteValues = OFstatic_cast(Uint8 *, getValue()); + OFStandard::encodeBase64(out, byteValues, OFstatic_cast(size_t, getLengthField())); + out << "\""; + } + } + /* write JSON Closer */ + writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} diff --git a/dcmdata/libsrc/dcvrod.cc b/dcmdata/libsrc/dcvrod.cc index 9ecd24e1..8a409146 100644 --- a/dcmdata/libsrc/dcvrod.cc +++ b/dcmdata/libsrc/dcvrod.cc @@ -26,6 +26,7 @@ #include "dcmtk/dcmdata/dcvrod.h" #include "dcmtk/dcmdata/dcswap.h" +#include "dcmtk/dcmdata/dcjson.h" // ******************************** @@ -150,3 +151,38 @@ OFCondition DcmOtherDouble::writeXML(STD_NAMESPACE ostream &out, /* always report success */ return EC_Normal; } + + +// ******************************** + + +OFCondition DcmOtherDouble::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + writeJsonOpener(out, format); + /* for an empty value field, we do not need to do anything */ + if (getLengthField() > 0) + { + OFString value; + if (format.asBulkDataURI(getTag(), value)) + { + /* return defined BulkDataURI */ + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, value); + } + else + { + /* encode binary data as Base64 */ + format.printInlineBinaryPrefix(out); + out << "\""; + Uint8 *byteValues = OFstatic_cast(Uint8 *, getValue()); + OFStandard::encodeBase64(out, byteValues, OFstatic_cast(size_t, getLengthField())); + out << "\""; + } + } + /* write JSON Closer */ + writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} diff --git a/dcmdata/libsrc/dcvrof.cc b/dcmdata/libsrc/dcvrof.cc index d9acb366..307660b5 100644 --- a/dcmdata/libsrc/dcvrof.cc +++ b/dcmdata/libsrc/dcvrof.cc @@ -24,6 +24,7 @@ #include "dcmtk/ofstd/ofuuid.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcvrof.h" #include "dcmtk/dcmdata/dcswap.h" @@ -150,3 +151,38 @@ OFCondition DcmOtherFloat::writeXML(STD_NAMESPACE ostream &out, /* always report success */ return EC_Normal; } + + +// ******************************** + + +OFCondition DcmOtherFloat::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + writeJsonOpener(out, format); + /* for an empty value field, we do not need to do anything */ + if (getLengthField() > 0) + { + OFString value; + if (format.asBulkDataURI(getTag(), value)) + { + /* return defined BulkDataURI */ + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, value); + } + else + { + /* encode binary data as Base64 */ + format.printInlineBinaryPrefix(out); + out << "\""; + Uint8 *byteValues = OFstatic_cast(Uint8 *, getValue()); + OFStandard::encodeBase64(out, byteValues, OFstatic_cast(size_t, getLengthField())); + out << "\""; + } + } + /* always write JSON Closer */ + writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} diff --git a/dcmdata/libsrc/dcvrol.cc b/dcmdata/libsrc/dcvrol.cc index 60c01973..40d002bb 100644 --- a/dcmdata/libsrc/dcvrol.cc +++ b/dcmdata/libsrc/dcvrol.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2016, OFFIS e.V. + * Copyright (C) 2016-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -25,12 +25,19 @@ #include "dcmtk/ofstd/ofuuid.h" #include "dcmtk/dcmdata/dcvrol.h" +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcswap.h" // ******************************** +DcmOtherLong::DcmOtherLong(const DcmTag &tag) + : DcmUnsignedLong(tag, 0) +{ +} + + DcmOtherLong::DcmOtherLong(const DcmTag &tag, const Uint32 len) : DcmUnsignedLong(tag, len) @@ -146,3 +153,38 @@ OFCondition DcmOtherLong::writeXML(STD_NAMESPACE ostream &out, /* always report success */ return EC_Normal; } + + +// ******************************** + + +OFCondition DcmOtherLong::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* write JSON Opener */ + writeJsonOpener(out, format); + /* for an empty value field, we do not need to do anything */ + if (getLengthField() > 0) + { + OFString value; + if (format.asBulkDataURI(getTag(), value)) + { + /* return defined BulkDataURI */ + format.printBulkDataURIPrefix(out); + DcmJsonFormat::printString(out, value); + } + else + { + /* encode binary data as Base64 */ + format.printInlineBinaryPrefix(out); + out << "\""; + Uint8 *byteValues = OFstatic_cast(Uint8 *, getValue()); + OFStandard::encodeBase64(out, byteValues, OFstatic_cast(size_t, getLengthField())); + out << "\""; + } + } + /* write JSON Closer */ + writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} diff --git a/dcmdata/libsrc/dcvrpn.cc b/dcmdata/libsrc/dcvrpn.cc index 0fb5852e..2b88b0b9 100644 --- a/dcmdata/libsrc/dcvrpn.cc +++ b/dcmdata/libsrc/dcvrpn.cc @@ -22,19 +22,22 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmdata/dcjson.h" #include "dcmtk/dcmdata/dcvrpn.h" // ******************************** +const char* const DcmPersonName::componentGroupNames[3] = { "Alphabetic", "Ideographic", "Phonetic" }; + + DcmPersonName::DcmPersonName(const DcmTag &tag, const Uint32 len) : DcmCharString(tag, len) { setMaxLength(64); // not correct: max length of PN is 3*64+2 = 194 characters (not bytes!) setNonSignificantChars(" \\^="); - setDelimiterChars("\\^="); } @@ -125,7 +128,6 @@ OFCondition DcmPersonName::writeXML(STD_NAMESPACE ostream &out, /* strings to hold family, first, and middle name as well as prefix and suffix component */ OFString components[5]; /* arrays in order to permit looping while creating the output */ - const char* compGroupNames[3] = { "Alphabetic", "Ideographic", "Phonetic" }; const char* compNames[5] = { "FamilyName", "GivenName", "MiddleName", "NamePrefix", "NameSuffix" }; for (unsigned int it = 0; it < vm; it++) { @@ -149,7 +151,7 @@ OFCondition DcmPersonName::writeXML(STD_NAMESPACE ostream &out, /* output one component group, e.g. Onken */ if (result.good()) { - out << "<" << compGroupNames[cg] << ">" << OFendl; // e.g. + out << "<" << componentGroupNames[cg] << ">" << OFendl; // e.g. /* go through components (last name, first name, ...) */ for (unsigned short c = 0; c < 5; c++) { @@ -159,7 +161,7 @@ OFCondition DcmPersonName::writeXML(STD_NAMESPACE ostream &out, out << "<" << compNames[c] << ">" << components[c] << "" << OFendl; } } - out << "" << OFendl; // e.g. + out << "" << OFendl; // e.g. } } } @@ -177,6 +179,250 @@ OFCondition DcmPersonName::writeXML(STD_NAMESPACE ostream &out, } +// ******************************** + + +OFCondition DcmPersonName::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + // helper struct to operate on the value pointers + struct Lexer + { + // initializes everything with foolproof defaults + Lexer() + : it(OFnullptr) + , end(OFnullptr) + , componentGroupName(componentGroupNames) + , currentComponent(0) + , hasTrailingNull(OFFalse) + { + + } + + // resets component groups and components for the new value and + // remembers that there was a value separator, so that trailing + // 'null' values can be printed. + void handleValue() + { + currentComponent = 0; + componentGroupName = componentGroupNames; + hasTrailingNull = OFTrue; + } + + // check component group validity and set members + // appropriately + // emit warnings for invalid component groups + void handleComponentGroup() + { + if (componentGroupName != componentGroupNames + 2) + { + currentComponent = 0; + ++componentGroupName; + } + else + { + DCMDATA_ERROR("DcmPersonName::writeJson(): omitting invalid " + "component group (more than three component groups present)"); + // seek to the end of the current component group - 1, since + // the iterator will be incremented in the calling code + while (++it != end && *it != '\\' && *it != '='); + --it; + } + } + + // searches for the next significant character + // (no delimiter or padding character). + // keeps track of the component group name and component + // number. + // returns OFFalse if no more significant characters exist. + OFBool nextValue() + { + for (; it != end; ++it) switch (*it) + { + case '\\': + handleValue(); + return OFTrue; + case '=': + handleComponentGroup(); + break; + case '^': + ++currentComponent; + break; + case ' ': + break; + default: + return OFTrue; + } + // this ends the output, unless we have to write + // a trailing 'null' + return hasTrailingNull; + } + + // searches for the next significant character + // (no delimiter or padding character) + // within the current value. + // keeps track of the current component group and component + // number. + // returns OFFalse if no more significant characters exist + // within the current value. + OFBool nextComponentGroup() + { + for (; it != end; ++it) switch(*it) + { + case '\\': + // skip over any value separator + ++it; + handleValue(); + return OFFalse; + case '=': + handleComponentGroup(); + break; + case '^': + ++currentComponent; + break; + case ' ': + break; + default: + return OFTrue; + } + return OFFalse; + } + + // searches for the next significant character + // (no delimiter or padding character) + // within the current component group. + // keeps track of the current component number. + // returns OFFalse if no more significant characters exist + // within the current component group. + OFBool nextComponent() + { + for (; it != end; ++it) switch(*it) + { + case '\\': + case '=': + return OFFalse; + case '^': + ++currentComponent; + break; + case ' ': + break; + default: + return OFTrue; + } + return OFFalse; + } + + // writes all significant characters of the current component, + // prepending '^' characters as required by the current component + // number. + void writeComponent(STD_NAMESPACE ostream &out) + { + for (; currentComponent; --currentComponent) + out << '^'; + const char* const begin = it; + while (++it != end && *it != '\\' && *it != '=' && *it != '^'); + const char* componentEnd = it - 1; + while (*componentEnd == ' ') + --componentEnd; + out.write(begin, componentEnd - begin + 1); + } + + // writes the name of the current component group and all components + // within the current component group that contain at least one significant + // character. + // All others are replaced by a single '^' character each, except for the + // trailing ones (that are omitted). + void writeComponentGroup(STD_NAMESPACE ostream &out, DcmJsonFormat &format) + { + out << format.indent() << '"' << *componentGroupName << "\":" + << format.space() << '"'; + writeComponent(out); + while (nextComponent()) + writeComponent(out); + out << '"'; + } + + // writes all component groups of the current value that contain at least + // a single significant character, separated by ',' characters. + // all other component groups are omitted entirely. + // writes 'null' if all component groups are empty. + void writeCurrentValue(STD_NAMESPACE ostream &out, DcmJsonFormat &format) + { + hasTrailingNull = OFFalse; + if (nextComponentGroup()) + { + out << '{' << format.newline(); + ++format.indent(); + writeComponentGroup(out, format); + while (nextComponentGroup()) + { + out << ',' << format.newline(); + writeComponentGroup(out, format); + } + out << format.newline() << --format.indent() << '}'; + } + else out << "null"; + } + + // points to the character that is currently being processed + const char* it; + + // points to the end of the entire attribute's data, including + // all values + const char* const end; + + // points to the respective entry of the componentGroupNames + // array that contains the name of the component group that + // is currently being processed + const char* const * componentGroupName; + + // denotes the number of empty components within the current + // component group since the last component that contained + // at least one significant character. + unsigned currentComponent; + + // will be OFTrue if the last value is empty, so that a + // trailing 'null' will be written + OFBool hasTrailingNull; + } lexer; + + // initialize the lexer, return an error if the data + // of the current attribute can't be accessed for whatever + // reason + OFCondition result = DcmCharString::getString(OFconst_cast(char*&, lexer.it)); + if (result.bad()) + return result; + OFconst_cast(const char*&, lexer.end) = lexer.it + DcmCharString::getLength(); + + // write attribute name etc., even if the attribute is empty + DcmElement::writeJsonOpener(out, format); + + // search for the first significant character within the + // entire data or the first value separator '\' + if (lexer.nextValue()) + { + // write the fist value or 'null' + format.printValuePrefix(out); + lexer.writeCurrentValue(out, format); + // search for the first significant character within + // the next value or the next '\' + while (lexer.nextValue()) + { + // write array element separator and the next + // value or 'null' + format.printNextArrayElementPrefix(out); + lexer.writeCurrentValue(out, format); + } + // close the array after the last value + format.printValueSuffix(out); + } + + // close the current attribute + DcmElement::writeJsonCloser(out, format); + + return EC_Normal; +} + // ******************************** @@ -483,3 +729,12 @@ OFCondition DcmPersonName::checkStringValue(const OFString &value, } return result; } + + +// ******************************** + + +const OFString& DcmPersonName::getDelimiterChars() const +{ + return DcmVR(EVR_PN).getDelimiterChars(); +} diff --git a/dcmdata/libsrc/dcvrsh.cc b/dcmdata/libsrc/dcvrsh.cc index b01ab037..f80c7796 100644 --- a/dcmdata/libsrc/dcvrsh.cc +++ b/dcmdata/libsrc/dcvrsh.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2013, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -23,6 +23,7 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #include "dcmtk/dcmdata/dcvrsh.h" +#include "dcmtk/dcmdata/dcjson.h" // ******************************** @@ -34,7 +35,6 @@ DcmShortString::DcmShortString(const DcmTag &tag, { setMaxLength(16); setNonSignificantChars(" \\"); - setDelimiterChars("\\"); } @@ -116,3 +116,47 @@ OFCondition DcmShortString::checkStringValue(const OFString &value, { return DcmByteString::checkStringValue(value, vm, "lo", 12, 0 /* maxLen: no check */, charset); } + + +// ******************************** + + +OFCondition DcmShortString::writeJson(STD_NAMESPACE ostream &out, + DcmJsonFormat &format) +{ + /* always write JSON Opener */ + DcmElement::writeJsonOpener(out, format); + /* write element value (if non-empty) */ + if (!isEmpty()) + { + OFString value; + OFCondition status = getOFString(value, 0L); + if (status.bad()) + return status; + format.printValuePrefix(out); + DcmJsonFormat::printValueString(out, value); + const unsigned long vm = getVM(); + for (unsigned long valNo = 1; valNo < vm; ++valNo) + { + status = getOFString(value, valNo); + if (status.bad()) + return status; + format.printNextArrayElementPrefix(out); + DcmJsonFormat::printValueString(out, value); + } + format.printValueSuffix(out); + } + /* write JSON Closer */ + DcmElement::writeJsonCloser(out, format); + /* always report success */ + return EC_Normal; +} + + +// ******************************** + + +const OFString& DcmShortString::getDelimiterChars() const +{ + return DcmVR(EVR_SH).getDelimiterChars(); +} diff --git a/dcmdata/libsrc/dcvrsl.cc b/dcmdata/libsrc/dcvrsl.cc index 84001698..16562f9b 100644 --- a/dcmdata/libsrc/dcvrsl.cc +++ b/dcmdata/libsrc/dcvrsl.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,11 @@ // ******************************** +DcmSignedLong::DcmSignedLong(const DcmTag &tag) + : DcmElement(tag, 0) +{ +} + DcmSignedLong::DcmSignedLong(const DcmTag &tag, const Uint32 len) diff --git a/dcmdata/libsrc/dcvrss.cc b/dcmdata/libsrc/dcvrss.cc index a80969eb..846983d9 100644 --- a/dcmdata/libsrc/dcvrss.cc +++ b/dcmdata/libsrc/dcvrss.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,11 @@ // ******************************** +DcmSignedShort::DcmSignedShort(const DcmTag &tag) + : DcmElement(tag, 0) +{ +} + DcmSignedShort::DcmSignedShort(const DcmTag &tag, const Uint32 len) diff --git a/dcmdata/libsrc/dcvrtm.cc b/dcmdata/libsrc/dcvrtm.cc index 3aa4117d..0f3e1770 100644 --- a/dcmdata/libsrc/dcvrtm.cc +++ b/dcmdata/libsrc/dcvrtm.cc @@ -218,41 +218,109 @@ OFCondition DcmTime::getDicomTimeFromOFTime(const OFTime &timeValue, return l_error; } +OFCondition DcmTime::getOFTimeFromString(const OFString &dicomTime, + OFTime &timeValue) +{ + return getOFTimeFromString(dicomTime.c_str(), dicomTime.size(), timeValue, OFTrue); +} OFCondition DcmTime::getOFTimeFromString(const OFString &dicomTime, OFTime &timeValue, const OFBool supportOldFormat) { - OFCondition l_error = EC_IllegalParameter; - /* clear result variable */ + return getOFTimeFromString(dicomTime.c_str(), dicomTime.size(), timeValue, supportOldFormat); +} + +OFCondition DcmTime::getOFTimeFromString(const OFString &dicomTime, + OFTime &timeValue, + const OFBool supportOldFormat, + const double timeZone) +{ + return getOFTimeFromString(dicomTime.c_str(), dicomTime.size(), timeValue, supportOldFormat, timeZone); +} + +OFCondition DcmTime::getOFTimeFromString(const char *dicomTime, + const size_t dicomTimeSize, + OFTime &timeValue) +{ + return getOFTimeFromString(dicomTime, dicomTimeSize, timeValue, OFTrue); +} + +OFCondition DcmTime::getOFTimeFromString(const char *dicomTime, + const size_t dicomTimeSize, + OFTime &timeValue, + const OFBool supportOldFormat) +{ + return getOFTimeFromString(dicomTime, dicomTimeSize, timeValue, supportOldFormat, OFTime::getLocalTimeZone()); +} + +OFCondition DcmTime::getOFTimeFromString(const char *dicomTime, + const size_t dicomTimeSize, + OFTime &timeValue, + const OFBool supportOldFormat, + const double timeZone) +{ + // clear result variable timeValue.clear(); - /* minimal check for valid format */ - if (supportOldFormat || (dicomTime.find(":") == OFString_npos)) + // do checks for any valid DICOM time format, before performing any extraction + if (dicomTimeSize < 2 || !OFStandard::checkDigits<2>(dicomTime)) + return EC_IllegalParameter; + unsigned int minutes = 0; + double seconds = 0; + // test for HH[MM[SS[.FFFFFF]]] format + switch (dicomTimeSize) + { + default: + if (dicomTimeSize < 7 || dicomTime[6] != '.' || !parseFragment(dicomTime + 7, dicomTimeSize - 7, seconds)) + break; + case 6: + if (OFStandard::checkDigits<2>(dicomTime + 4)) + seconds += OFStandard::extractDigits(dicomTime + 4); + else + break; + case 4: + if (OFStandard::checkDigits<2>(dicomTime + 2)) + minutes = OFStandard::extractDigits(dicomTime + 2); + else + break; + case 2: + if (timeValue.setTime(OFStandard::extractDigits(dicomTime), minutes, seconds, timeZone)) + return EC_Normal; + else + return EC_IllegalParameter; + } + // test for legacy time format HH[:MM[:SS[.FFFFFF]]], if enabled + if (supportOldFormat && dicomTimeSize >= 5 && dicomTime[2] == ':' && OFStandard::checkDigits<2>(dicomTime + 3)) { - unsigned int hour, minute = 0; - double second = 0.0; - /* normalize time format (remove ":" chars) */ - OFString string = dicomTime; - if ((string.length() > 5) && (string[5] == ':')) - string.erase(5, 1); - if ((string.length() > 2) && (string[2] == ':')) - string.erase(2, 1); - /* extract components from time string: HH[MM[SS[.FFFFFF]]] */ - /* scan seconds using OFStandard::atof to avoid locale issues */ - if (sscanf(string.c_str(), "%02u%02u", &hour, &minute) >= 1) + seconds = 0; + switch (dicomTimeSize) { - if (string.length() > 4) + default: + if (dicomTimeSize < 9 || dicomTime[8] != '.' || !parseFragment(dicomTime + 9, dicomTimeSize - 9, seconds)) + break; + case 8: + if (dicomTime[5] == ':' && OFStandard::checkDigits<2>(dicomTime + 6)) + seconds += OFStandard::extractDigits(dicomTime + 6); + else + break; + case 5: + if + ( + timeValue.setTime + ( + OFStandard::extractDigits(dicomTime), + OFStandard::extractDigits(dicomTime + 3), + seconds, + timeZone + ) + ) { - /* get optional seconds part */ - string.erase(0, 4); - second = OFStandard::atof(string.c_str()); + return EC_Normal; } - /* always use the local time zone */ - if (timeValue.setTime(hour, minute, second, OFTime::getLocalTimeZone())) - l_error = EC_Normal; + break; } } - return l_error; + return EC_IllegalParameter; } @@ -332,40 +400,28 @@ OFCondition DcmTime::getISOFormattedTimeFromString(const OFString &dicomTime, return result; } - OFCondition DcmTime::getTimeZoneFromString(const OFString &dicomTimeZone, double &timeZone) { - OFCondition result = EC_IllegalParameter; + return getTimeZoneFromString(dicomTimeZone.c_str(), dicomTimeZone.size(), timeZone); +} + +OFCondition DcmTime::getTimeZoneFromString(const char *dicomTimeZone, + const size_t dicomTimeZoneSize, + double &timeZone) +{ /* init return value */ timeZone = 0; /* minimal check for valid format */ - if (dicomTimeZone.length() == 5) + if (dicomTimeZoneSize == 5 && (dicomTimeZone[0] == '+' || dicomTimeZone[0] == '-') && OFStandard::checkDigits<4>(dicomTimeZone + 1)) { - unsigned int hour; - unsigned int minute; - /* positive sign */ - if (dicomTimeZone[0] == '+') - { - /* extract components from time zone string */ - if (sscanf(dicomTimeZone.c_str() + 1, "%02u%02u", &hour, &minute) == 2) - { - timeZone = OFstatic_cast(double, hour) + OFstatic_cast(double, minute) / 60; - result = EC_Normal; - } - } - /* negative sign */ - else if (dicomTimeZone[0] == '-') - { - /* extract components from time zone string */ - if (sscanf(dicomTimeZone.c_str() + 1, "%02u%02u", &hour, &minute) == 2) - { - timeZone = -OFstatic_cast(double, hour) - OFstatic_cast(double, minute) / 60; - result = EC_Normal; - } - } + timeZone = OFstatic_cast(double, (OFStandard::extractDigits(dicomTimeZone + 1))) + + OFstatic_cast(double, (OFStandard::extractDigits(dicomTimeZone + 3))) / 60; + if (dicomTimeZone[0] == '-') + timeZone = -timeZone; + return EC_Normal; } - return result; + return EC_IllegalParameter; } @@ -415,3 +471,16 @@ OFCondition DcmTime::checkStringValue(const OFString &value, } return result; } + +OFBool DcmTime::parseFragment(const char* const string, const size_t size, double& result) +{ + const char* p = string + size - 1; + if (p >= string && OFStandard::checkDigits<1>( p )) + { + result = OFStandard::extractDigits( p ) / 10.0; + while (--p >= string && OFStandard::checkDigits<1>( p )) + result = ( result + OFStandard::extractDigits( p ) ) / 10.0; + return p < string; + } + return OFFalse; +} diff --git a/dcmdata/libsrc/dcvrul.cc b/dcmdata/libsrc/dcvrul.cc index 84bf281a..59986be5 100644 --- a/dcmdata/libsrc/dcvrul.cc +++ b/dcmdata/libsrc/dcvrul.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -32,6 +32,12 @@ // ******************************** +DcmUnsignedLong::DcmUnsignedLong(const DcmTag &tag) + : DcmElement(tag, 0) +{ +} + + DcmUnsignedLong::DcmUnsignedLong(const DcmTag &tag, const Uint32 len) : DcmElement(tag, len) diff --git a/dcmdata/libsrc/dcvrulup.cc b/dcmdata/libsrc/dcvrulup.cc index 68cd01e5..0086cd5d 100644 --- a/dcmdata/libsrc/dcvrulup.cc +++ b/dcmdata/libsrc/dcvrulup.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2010, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,13 @@ // ******************************** +DcmUnsignedLongOffset::DcmUnsignedLongOffset(const DcmTag &tag) + : DcmUnsignedLong(tag, 0), + nextRecord(NULL) +{ +} + + DcmUnsignedLongOffset::DcmUnsignedLongOffset(const DcmTag &tag, const Uint32 len) : DcmUnsignedLong(tag, len), diff --git a/dcmdata/libsrc/dcvrus.cc b/dcmdata/libsrc/dcvrus.cc index 0954595b..e92fd3dc 100644 --- a/dcmdata/libsrc/dcvrus.cc +++ b/dcmdata/libsrc/dcvrus.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -32,6 +32,12 @@ // ******************************** +DcmUnsignedShort::DcmUnsignedShort(const DcmTag &tag) + : DcmElement(tag, 0) +{ +} + + DcmUnsignedShort::DcmUnsignedShort(const DcmTag &tag, const Uint32 len) : DcmElement(tag, len) { diff --git a/dcmdata/libsrc/dcxfer.cc b/dcmdata/libsrc/dcxfer.cc index b7ec1b50..b3244c34 100644 --- a/dcmdata/libsrc/dcxfer.cc +++ b/dcmdata/libsrc/dcxfer.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -48,6 +48,7 @@ typedef struct const S_XferNames XferNames[] = { + // entry #0 { UID_LittleEndianImplicitTransferSyntax, "Little Endian Implicit", EXS_LittleEndianImplicit, @@ -58,6 +59,7 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #1 { "", // illegal type "Virtual Big Endian Implicit", EXS_BigEndianImplicit, @@ -68,6 +70,7 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #2 { UID_LittleEndianExplicitTransferSyntax, "Little Endian Explicit", EXS_LittleEndianExplicit, @@ -78,6 +81,7 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #3 { UID_BigEndianExplicitTransferSyntax, "Big Endian Explicit", EXS_BigEndianExplicit, @@ -88,6 +92,7 @@ const S_XferNames XferNames[] = OFFalse, OFTrue, // retired with Supplement 98 ESC_none }, + // entry #4 { UID_JPEGProcess1TransferSyntax, "JPEG Baseline", EXS_JPEGProcess1, @@ -98,6 +103,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #5 { UID_JPEGProcess2_4TransferSyntax, "JPEG Extended, Process 2+4", EXS_JPEGProcess2_4, @@ -108,6 +114,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #6 { UID_JPEGProcess3_5TransferSyntax, "JPEG Extended, Process 3+5", EXS_JPEGProcess3_5, @@ -118,6 +125,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #7 { UID_JPEGProcess6_8TransferSyntax, "JPEG Spectral Selection, Non-hierarchical, Process 6+8", EXS_JPEGProcess6_8, @@ -128,6 +136,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #8 { UID_JPEGProcess7_9TransferSyntax, "JPEG Spectral Selection, Non-hierarchical, Process 7+9", EXS_JPEGProcess7_9, @@ -138,6 +147,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #9 { UID_JPEGProcess10_12TransferSyntax, "JPEG Full Progression, Non-hierarchical, Process 10+12", EXS_JPEGProcess10_12, @@ -148,6 +158,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #10 { UID_JPEGProcess11_13TransferSyntax, "JPEG Full Progression, Non-hierarchical, Process 11+13", EXS_JPEGProcess11_13, @@ -158,6 +169,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #11 { UID_JPEGProcess14TransferSyntax, "JPEG Lossless, Non-hierarchical, Process 14", EXS_JPEGProcess14, @@ -168,6 +180,7 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #12 { UID_JPEGProcess15TransferSyntax, "JPEG Lossless, Non-hierarchical, Process 15", EXS_JPEGProcess15, @@ -178,6 +191,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #13 { UID_JPEGProcess16_18TransferSyntax, "JPEG Extended, Hierarchical, Process 16+18", EXS_JPEGProcess16_18, @@ -188,6 +202,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #14 { UID_JPEGProcess17_19TransferSyntax, "JPEG Extended, Hierarchical, Process 17+19", EXS_JPEGProcess17_19, @@ -198,6 +213,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #15 { UID_JPEGProcess20_22TransferSyntax, "JPEG Spectral Selection, Hierarchical, Process 20+22", EXS_JPEGProcess20_22, @@ -208,6 +224,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #16 { UID_JPEGProcess21_23TransferSyntax, "JPEG Spectral Selection, Hierarchical, Process 21+23", EXS_JPEGProcess21_23, @@ -218,6 +235,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #17 { UID_JPEGProcess24_26TransferSyntax, "JPEG Full Progression, Hierarchical, Process 24+26", EXS_JPEGProcess24_26, @@ -228,6 +246,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #18 { UID_JPEGProcess25_27TransferSyntax, "JPEG Full Progression, Hierarchical, Process 25+27", EXS_JPEGProcess25_27, @@ -238,6 +257,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #19 { UID_JPEGProcess28TransferSyntax, "JPEG Lossless, Hierarchical, Process 28", EXS_JPEGProcess28, @@ -248,6 +268,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #20 { UID_JPEGProcess29TransferSyntax, "JPEG Lossless, Hierarchical, Process 29", EXS_JPEGProcess29, @@ -258,6 +279,7 @@ const S_XferNames XferNames[] = OFTrue, OFTrue, ESC_none }, + // entry #21 { UID_JPEGProcess14SV1TransferSyntax, "JPEG Lossless, Non-hierarchical, 1st Order Prediction", EXS_JPEGProcess14SV1, @@ -268,6 +290,7 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #22 { UID_RLELosslessTransferSyntax, "RLE Lossless", EXS_RLELossless, @@ -278,6 +301,23 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #23 + { UID_DeflatedExplicitVRLittleEndianTransferSyntax, + "Deflated Explicit VR Little Endian", + EXS_DeflatedLittleEndianExplicit, + EBO_LittleEndian, + EVT_Explicit, + EJE_NotEncapsulated, + 0L, 0L, + OFFalse, + OFFalse, +#ifdef WITH_ZLIB + ESC_zlib +#else + ESC_unsupported +#endif + }, + // entry #24 { UID_JPEGLSLosslessTransferSyntax, "JPEG-LS Lossless", EXS_JPEGLSLossless, @@ -288,6 +328,7 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #25 { UID_JPEGLSLossyTransferSyntax, "JPEG-LS Lossy (Near-lossless)", EXS_JPEGLSLossy, @@ -298,21 +339,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, - { UID_DeflatedExplicitVRLittleEndianTransferSyntax, - "Deflated Explicit VR Little Endian", - EXS_DeflatedLittleEndianExplicit, - EBO_LittleEndian, - EVT_Explicit, - EJE_NotEncapsulated, - 0L, 0L, - OFFalse, - OFFalse, -#ifdef WITH_ZLIB - ESC_zlib -#else - ESC_unsupported -#endif - }, + // entry #26 { UID_JPEG2000LosslessOnlyTransferSyntax, "JPEG 2000 (Lossless only)", EXS_JPEG2000LosslessOnly, @@ -323,6 +350,7 @@ const S_XferNames XferNames[] = OFFalse, OFFalse, ESC_none }, + // entry #27 { UID_JPEG2000TransferSyntax, "JPEG 2000 (Lossless or Lossy)", EXS_JPEG2000, @@ -333,8 +361,58 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #28 + { UID_JPEG2000Part2MulticomponentImageCompressionLosslessOnlyTransferSyntax, + "JPEG 2000 Part 2 Multicomponent Image Compression (Lossless only)", + EXS_JPEG2000MulticomponentLosslessOnly, + EBO_LittleEndian, + EVT_Explicit, + EJE_Encapsulated, + 0L, 0L, + OFFalse, + OFFalse, + ESC_none }, + // entry #29 + { UID_JPEG2000Part2MulticomponentImageCompressionTransferSyntax, + "JPEG 2000 Part 2 Multicomponent Image Compression (Lossless or Lossy)", + EXS_JPEG2000Multicomponent, + EBO_LittleEndian, + EVT_Explicit, + EJE_Encapsulated, + 0L, 0L, + OFTrue, + OFFalse, + ESC_none }, + // entry #30 + { UID_JPIPReferencedTransferSyntax, + "JPIP Referenced", + EXS_JPIPReferenced, + EBO_LittleEndian, + EVT_Explicit, + EJE_NotEncapsulated, // in fact, pixel data shall be referenced via (0028,7FE0) Pixel Data Provider URL + 0L, 0L, + OFTrue, // really lossy? + OFFalse, + ESC_none }, + // entry #31 + { UID_JPIPReferencedDeflateTransferSyntax, + "JPIP Referenced Deflate", + EXS_JPIPReferencedDeflate, + EBO_LittleEndian, + EVT_Explicit, + EJE_NotEncapsulated, // in fact, pixel data shall be referenced via (0028,7FE0) Pixel Data Provider URL + 0L, 0L, + OFTrue, // really lossy? + OFFalse, +#ifdef WITH_ZLIB + ESC_zlib +#else + ESC_unsupported +#endif + }, + // entry #32 { UID_MPEG2MainProfileAtMainLevelTransferSyntax, - "MPEG2 Main Profile @ Main Level", + "MPEG2 Main Profile @ Main Level", // changed with DICOM 2016e to: MPEG2 Main Profile / Main Level EXS_MPEG2MainProfileAtMainLevel, EBO_LittleEndian, EVT_Explicit, @@ -343,8 +421,9 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #33 { UID_MPEG2MainProfileAtHighLevelTransferSyntax, - "MPEG2 Main Profile @ High Level", + "MPEG2 Main Profile @ High Level", // changed with DICOM 2016e to: MPEG2 Main Profile / High Level EXS_MPEG2MainProfileAtHighLevel, EBO_LittleEndian, EVT_Explicit, @@ -353,6 +432,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #34 { UID_MPEG4HighProfileLevel4_1TransferSyntax, "MPEG-4 AVC/H.264 High Profile / Level 4.1", EXS_MPEG4HighProfileLevel4_1, @@ -363,6 +443,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #35 { UID_MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax, "MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1", EXS_MPEG4BDcompatibleHighProfileLevel4_1, @@ -373,6 +454,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #36 { UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax, "MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video", EXS_MPEG4HighProfileLevel4_2_For2DVideo, @@ -383,6 +465,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #37 { UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax, "MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video", EXS_MPEG4HighProfileLevel4_2_For3DVideo, @@ -393,6 +476,7 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, + // entry #38 { UID_MPEG4StereoHighProfileLevel4_2TransferSyntax, "MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2", EXS_MPEG4StereoHighProfileLevel4_2, @@ -403,53 +487,28 @@ const S_XferNames XferNames[] = OFTrue, OFFalse, ESC_none }, - { UID_JPEG2000Part2MulticomponentImageCompressionLosslessOnlyTransferSyntax, - "JPEG 2000 Part 2 Multicomponent Image Compression (Lossless only)", - EXS_JPEG2000MulticomponentLosslessOnly, + // entry #39 + { UID_HEVCMainProfileLevel5_1TransferSyntax, + "HEVC/H.265 Main Profile / Level 5.1", + EXS_HEVCMainProfileLevel5_1, EBO_LittleEndian, EVT_Explicit, EJE_Encapsulated, 0L, 0L, - OFFalse, + OFTrue, OFFalse, ESC_none }, - { UID_JPEG2000Part2MulticomponentImageCompressionTransferSyntax, - "JPEG 2000 Part 2 Multicomponent Image Compression (Lossless or Lossy)", - EXS_JPEG2000Multicomponent, + // entry #40 + { UID_HEVCMain10ProfileLevel5_1TransferSyntax, + "HEVC/H.265 Main 10 Profile / Level 5.1", + EXS_HEVCMain10ProfileLevel5_1, EBO_LittleEndian, EVT_Explicit, EJE_Encapsulated, 0L, 0L, OFTrue, OFFalse, - ESC_none }, - { UID_JPIPReferencedTransferSyntax, - "JPIP Referenced", - EXS_JPIPReferenced, - EBO_LittleEndian, - EVT_Explicit, - EJE_NotEncapsulated, // in fact, pixel data shall be referenced via (0028,7FE0) Pixel Data Provider URL - 0L, 0L, - OFTrue, // really lossy? - OFFalse, - ESC_none }, - { UID_JPIPReferencedDeflateTransferSyntax, - "JPIP Referenced Deflate", - EXS_JPIPReferencedDeflate, - EBO_LittleEndian, - EVT_Explicit, - EJE_NotEncapsulated, // in fact, pixel data shall be referenced via (0028,7FE0) Pixel Data Provider URL - 0L, 0L, - OFTrue, // really lossy? - OFFalse, -#ifdef WITH_ZLIB - ESC_zlib -#else - ESC_unsupported -#endif - } - - // enter further transfer syntaxes here ... + ESC_none } }; const int DIM_OF_XferNames = OFstatic_cast(int, sizeof(XferNames) / sizeof(S_XferNames)); @@ -583,6 +642,8 @@ DcmXfer::~DcmXfer() DcmXfer &DcmXfer::operator=(const E_TransferSyntax xfer) { + // tbc: if the enum value is consistent with the index of the array, + // why do we need to iterate over the array entries? int i = 0; while ((i < DIM_OF_XferNames) && (XferNames[i].xfer != xfer)) i++; diff --git a/dcmdata/tests/CMakeLists.txt b/dcmdata/tests/CMakeLists.txt index 30c41783..efc8cecf 100644 --- a/dcmdata/tests/CMakeLists.txt +++ b/dcmdata/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # declare executables -DCMTK_ADD_EXECUTABLE(dcmdata_tests tests tpread ti2dbmp tchval tpath tvrdatim telemlen tparser tdict tvrds tvrfd tvrpn tvrui tvrol tstrval tspchrs tparent tfilter tvrcomp) +DCMTK_ADD_EXECUTABLE(dcmdata_tests tests tpread ti2dbmp tchval tpath tvrdatim telemlen tparser tdict tvrds tvrfd tvrpn tvrui tvrol tstrval tspchrs tparent tfilter tvrcomp tmatch) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(dcmdata_tests i2d dcmdata oflog ofstd) diff --git a/dcmdata/tests/Makefile.dep b/dcmdata/tests/Makefile.dep index 2062e609..e980384d 100644 --- a/dcmdata/tests/Makefile.dep +++ b/dcmdata/tests/Makefile.dep @@ -358,6 +358,52 @@ ti2dbmp.o: ti2dbmp.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmdata/dcvr.h \ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../include/dcmtk/dcmdata/libi2d/i2define.h +tmatch.o: tmatch.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmdata/dcuid.h ../include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../include/dcmtk/dcmdata/dcmatch.h tparent.o: tparent.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/oftest.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ @@ -739,9 +785,10 @@ tspchrs.o: tspchrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../include/dcmtk/dcmdata/dcspchrs.h \ ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../include/dcmtk/dcmdata/dctypes.h tstrval.o: tstrval.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/oftest.h \ diff --git a/dcmdata/tests/Makefile.in b/dcmdata/tests/Makefile.in index d95ae9cd..5a6d7324 100644 --- a/dcmdata/tests/Makefile.in +++ b/dcmdata/tests/Makefile.in @@ -18,12 +18,12 @@ oflogdir = $(top_srcdir)/../oflog LOCALINCLUDES = -I$(top_srcdir)/include -I$(ofstddir)/include -I$(oflogdir)/include LIBDIRS = -L$(top_srcdir)/libsrc -L$(top_srcdir)/libi2d -L$(ofstddir)/libsrc \ -L$(oflogdir)/libsrc -LOCALLIBS = -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(ICONVLIBS) +LOCALLIBS = -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(CHARCONVLIBS) I2DLIBS = -li2d objs = tests.o tpread.o ti2dbmp.o tchval.o tpath.o tvrdatim.o telemlen.o tparser.o \ tdict.o tvrds.o tvrfd.o tvrui.o tvrol.o tstrval.o tspchrs.o tvrpn.o \ - tparent.o tfilter.o tvrcomp.o + tparent.o tfilter.o tvrcomp.o tmatch.o progs = tests diff --git a/dcmdata/tests/tests.cc b/dcmdata/tests/tests.cc index 805f0879..57470f38 100644 --- a/dcmdata/tests/tests.cc +++ b/dcmdata/tests/tests.cc @@ -103,4 +103,5 @@ OFTEST_REGISTER(dcmdata_specificCharacterSet_2); OFTEST_REGISTER(dcmdata_specificCharacterSet_3); OFTEST_REGISTER(dcmdata_specificCharacterSet_4); OFTEST_REGISTER(dcmdata_attribute_filter); +OFTEST_REGISTER(dcmdata_attribute_matching); OFTEST_MAIN("dcmdata") diff --git a/dcmdata/tests/tmatch.cc b/dcmdata/tests/tmatch.cc new file mode 100644 index 00000000..35662dcb --- /dev/null +++ b/dcmdata/tests/tmatch.cc @@ -0,0 +1,124 @@ +/* + * + * Copyright (C) 2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmdata + * + * Author: Jan Schlamelcher + * + * Purpose: unit test for DcmAttributeMatching + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/dcmdata/dcvr.h" +#include "dcmtk/dcmdata/dcmatch.h" + +static OFBool test_singlevalue( const char* const query, const char* const candidate ) +{ + return DcmAttributeMatching::singleValueMatching( query, strlen( query ), candidate, strlen( candidate ) ); +} + +static OFBool test_wildcards( const char* const query, const char* const candidate ) +{ + return DcmAttributeMatching::wildCardMatching( query, strlen( query ), candidate, strlen( candidate ) ); +} + +static OFBool test_date( const char* const query, const char* const candidate ) +{ + return DcmAttributeMatching::rangeMatchingDate( query, strlen( query ), candidate, strlen( candidate ) ); +} + +static OFBool test_time( const char* const query, const char* const candidate ) +{ + return DcmAttributeMatching::rangeMatchingTime( query, strlen( query ), candidate, strlen( candidate ) ); +} + +static OFBool test_datetime( const char* const query, const char* const candidate ) +{ + return DcmAttributeMatching::rangeMatchingDateTime( query, strlen( query ), candidate, strlen( candidate ) ); +} + +static OFBool test_uids( const char* const query, const char* const candidate ) +{ + return DcmAttributeMatching::listOfUIDMatching( query, strlen( query ), candidate, strlen( candidate ) ); +} + +OFTEST(dcmdata_attribute_matching) +{ + // wild card matching tests + OFCHECK(test_wildcards( "", "hello world" )); + OFCHECK(test_wildcards( "*", "hello world" )); + OFCHECK(!test_wildcards( "?", "hello world" )); + OFCHECK(test_wildcards( "?*", "hello world" )); + OFCHECK(test_wildcards( "?ell*??l?", "hello world" )); + OFCHECK(!test_wildcards( "?ell***?*?l??", "hello world" )); + OFCHECK(test_wildcards( "?ell*?**?l?*", "hello world" )); + // date + OFCHECK(test_date( "", "20170224" )); + OFCHECK(test_date( "1987.08.02", "19870802" )); + OFCHECK(test_date( "-20000101", "20000101" )); + OFCHECK(test_date( "-20000101", "19990531" )); + OFCHECK(!test_date( "-20000101", "20010101" )); + OFCHECK(test_date( "20000101-", "20010101" )); + OFCHECK(!test_date( "20000101-", "19991231" )); + OFCHECK(test_date( "19990101-20000305", "20000101" )); + OFCHECK(!test_date( "19990101-20000305", "19980107")); + OFCHECK(!test_date( "19990101-20000305", "20000306")); + OFCHECK(!test_date( "19990101-20000305", "122713.114122")); + // time + OFCHECK(test_time( "", "120224" )); + OFCHECK(test_time( "11:23:17.123456", "112317.123456" )); + OFCHECK(test_time( "-12", "120000" )); + OFCHECK(test_time( "-12", "113059.654321" )); + OFCHECK(!test_time( "-12", "120000.000001" )); + OFCHECK(test_time( "1200-", "120000.000000" )); + OFCHECK(!test_time( "12-", "115959.999999" )); + OFCHECK(test_time( "11-121428.234763", "12" )); + OFCHECK(!test_time( "11-121428.234763", "105959.999999")); + OFCHECK(!test_time( "11-121428.234763", "121428.234764")); + OFCHECK(!test_time( "11-121428.234763", "20140909")); + // datetime + OFCHECK(test_datetime( "", "20170224120224+0100" )); + OFCHECK(test_datetime( "20170224113224.000000+0030", "20170224120224+0100" )); + OFCHECK(test_datetime( "-2000", "20000101000000.000000" )); + OFCHECK(test_datetime( "-2000", "19990531132417.231194" )); + OFCHECK(!test_datetime( "-2000", "20000102000000.000001" )); + OFCHECK(test_datetime( "200001-", "2001010100" )); + OFCHECK(!test_datetime( "2000-", "19991231235959.999999" )); + OFCHECK(!test_datetime( "1999-20000305173259.123456", "1998010712+0430")); + OFCHECK(!test_datetime( "1999-20000305173259.123456", "20000306")); + OFCHECK(!test_datetime( "1999-20000305173259.123456", "122713.114122")); + // UIDs + OFCHECK(test_uids("","123.456.789.10")); + OFCHECK(test_uids("123.456.789.10","123.456.789.10")); + OFCHECK(!test_uids("456.789.10","123.456.789.10")); + OFCHECK(test_uids("456.789.10\\123.456.789.10","123.456.789.10")); + OFCHECK(test_uids("456.789.10\\123.456.789.10\\456.123.789.10","123.456.789.10")); + OFCHECK(!test_uids("456.789.10\\123.456.79.10\\456.123.789.10","123.456.789.10")); + // single value matching + OFCHECK(test_singlevalue( "", "Hello world!" )); + OFCHECK(test_singlevalue( "Hello world!", "Hello world!" )); + OFCHECK(test_singlevalue( "Hello*world!", "Hello*world!" )); + OFCHECK(!test_singlevalue( "Hello*world!", "Hello world!" )); + // high level API tests + DcmAttributeMatching match( EVR_DA ); + OFCHECK(match); + OFCHECK(!!match); + OFCHECK(match( "20160101-20181231", 17, "20170713", 8 )); + match = DcmAttributeMatching( EVR_TM ); + OFCHECK(match( "-12", 3, "11", 2 )); + OFCHECK(!DcmAttributeMatching( EVR_PN )( "M?ller", 6, "^Martin", 7 )); +} diff --git a/dcmdata/tests/tspchrs.cc b/dcmdata/tests/tspchrs.cc index ae4dae7a..3be6a1a2 100644 --- a/dcmdata/tests/tspchrs.cc +++ b/dcmdata/tests/tspchrs.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2011-2013, OFFIS e.V. + * Copyright (C) 2011-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -30,7 +30,7 @@ OFTEST(dcmdata_specificCharacterSet_1) { DcmSpecificCharacterSet converter; - if (converter.isConversionLibraryAvailable()) + if (converter.isConversionAvailable()) { // try to select all DICOM character sets without code extensions OFCHECK(converter.selectCharacterSet("").good()); @@ -48,6 +48,7 @@ OFTEST(dcmdata_specificCharacterSet_1) OFCHECK(converter.selectCharacterSet("ISO_IR 166").good()); OFCHECK(converter.selectCharacterSet("ISO_IR 192").good()); OFCHECK(converter.selectCharacterSet(" GB18030 ").good()); + OFCHECK(converter.selectCharacterSet(" GBK ").good()); // try to select all DICOM character sets with code extensions OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 6 ").good()); OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 100").good()); @@ -61,9 +62,13 @@ OFTEST(dcmdata_specificCharacterSet_1) OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 148").good()); OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 13 ").good()); OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 166").good()); - OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 87" ).good()); +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV + // (only the ICONV library supports these character sets) + OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 87 ").good()); OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 159").good()); +#endif OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 149").good()); + OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 58 ").good()); // the following should fail OFCHECK(converter.selectCharacterSet("DCMTK").bad()); OFCHECK(converter.selectCharacterSet(" \\ ").bad()); @@ -90,7 +95,7 @@ OFTEST(dcmdata_specificCharacterSet_1) OFTEST(dcmdata_specificCharacterSet_2) { DcmSpecificCharacterSet converter; - if (converter.isConversionLibraryAvailable()) + if (converter.isConversionAvailable()) { OFString resultStr; // check whether string conversion from Latin-1 to UTF-8 works @@ -118,12 +123,14 @@ OFTEST(dcmdata_specificCharacterSet_2) OFTEST(dcmdata_specificCharacterSet_3) { DcmSpecificCharacterSet converter; - if (converter.isConversionLibraryAvailable()) + if (converter.isConversionAvailable()) { OFString resultStr; // we need the PN delimiters for a standard comformant conversion const OFString delimiters("\\^="); +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV // check whether string conversion from Japanese language to UTF-8 works + // (only the ICONV library supports these character sets) // example taken from DICOM PS 3.5 Annex H.3.1 OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 87").good()); OFCHECK(converter.convertString("Yamada^Tarou=\033$B;3ED\033(B^\033$BB@O:\033(B=\033$B$d$^$@\033(B^\033$B$?$m$&\033(B", resultStr, delimiters).good()); @@ -132,16 +139,25 @@ OFTEST(dcmdata_specificCharacterSet_3) OFCHECK(converter.selectCharacterSet("ISO 2022 IR 13\\ISO 2022 IR 87").good()); OFCHECK(converter.convertString("\324\317\300\336^\300\333\263=\033$B;3ED\033(J^\033$BB@O:\033(J=\033$B$d$^$@\033(J^\033$B$?$m$&\033(J", resultStr, delimiters).good()); OFCHECK_EQUAL(resultStr, "\357\276\224\357\276\217\357\276\200\357\276\236^\357\276\200\357\276\233\357\275\263=\345\261\261\347\224\260^\345\244\252\351\203\216=\343\202\204\343\201\276\343\201\240^\343\201\237\343\202\215\343\201\206"); +#endif // check whether string conversion from Korean language to UTF-8 works // example taken from DICOM PS 3.5 Annex I.2 OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 149").good()); OFCHECK(converter.convertString("Hong^Gildong=\033$)C\373\363^\033$)C\321\316\324\327=\033$)C\310\253^\033$)C\261\346\265\277", resultStr, delimiters).good()); OFCHECK_EQUAL(resultStr, "Hong^Gildong=\346\264\252^\345\220\211\346\264\236=\355\231\215^\352\270\270\353\217\231"); + // modified example: check for 8-bit mode (using ASCII characters) + OFCHECK(converter.convertString("Hong^Gildong=\033$)C\373\363^\033$)C\321\316ASCII\324\327=\033$)C\310\253^\033$)C\261\346\265\277", resultStr, delimiters).good()); + OFCHECK_EQUAL(resultStr, "Hong^Gildong=\346\264\252^\345\220\211ASCII\346\264\236=\355\231\215^\352\270\270\353\217\231"); // check whether string conversion from Chinese language to UTF-8 works - // example taken from DICOM PS 3.5 Annex J.2 + // example taken from DICOM PS 3.5 Annex J.3 OFCHECK(converter.selectCharacterSet("GB18030").good()); OFCHECK(converter.convertString("Wang^XiaoDong=\315\365^\320\241\266\253=", resultStr, delimiters).good()); OFCHECK_EQUAL(resultStr, "Wang^XiaoDong=\347\216\213^\345\260\217\344\270\234="); + // check whether string conversion from Chinese language to UTF-8 works + // example taken from DICOM PS 3.5 Annex K.2 + OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 58").good()); + OFCHECK(converter.convertString("Zhang^XiaoDong=\033\044\051\101\325\305\136\033\044\051\101\320\241\266\253=", resultStr, delimiters).good()); + OFCHECK_EQUAL(resultStr, "Zhang^XiaoDong=\345\274\240\136\345\260\217\344\270\234="); // check whether CR and LF are detected correctly OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 13").good()); OFCHECK(converter.convertString("Japanese\r\033(J\324\317\300\336\nText", resultStr).good()); @@ -163,7 +179,7 @@ OFTEST(dcmdata_specificCharacterSet_3) OFTEST(dcmdata_specificCharacterSet_4) { DcmSpecificCharacterSet converter; - if (converter.isConversionLibraryAvailable()) + if (converter.isConversionAvailable()) { OFString resultStr; // check whether string conversion from UTF-8 to Latin-1 works @@ -172,18 +188,30 @@ OFTEST(dcmdata_specificCharacterSet_4) OFCHECK_EQUAL(resultStr, "J\366rg"); OFCHECK(converter.convertString("J\303\251r\303\264me", resultStr).good()); OFCHECK_EQUAL(resultStr, "J\351r\364me"); +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV + // (only the ICONV library supports this character set) // the following should fail OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 87", "ISO_IR 100").good()); OFCHECK(converter.convertString("Yamada^Tarou=\033$B;3ED\033(B^\033$BB@O:\033(B=\033$B$d$^$@\033(B^\033$B$?$m$&\033(B", resultStr).bad()); +#endif OFCHECK(converter.selectCharacterSet("ISO_IR 100", "").good()); - OFCHECK(converter.convertString("J\366rg", resultStr).bad()); - // the following should work - OFCHECK(converter.selectCharacterSet("ISO_IR 100", "", OFTrue /*transliterate*/).good()); - OFCHECK(converter.convertString("J\366rg", resultStr).good()); - OFCHECK_EQUAL(resultStr, "J\"org"); - OFCHECK(converter.selectCharacterSet("ISO_IR 100", "", OFFalse /*transliterate*/, OFTrue /*discardIllegal*/).good()); - OFCHECK(converter.convertString("J\366rg", resultStr).good()); - OFCHECK_EQUAL(resultStr, "Jrg"); // discard mode removes characters that cannot be "translated" + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::AbortTranscodingOnIllegalSequence)) + { + OFCHECK(converter.setConversionFlags(OFCharacterEncoding::AbortTranscodingOnIllegalSequence).good()); + OFCHECK(converter.convertString("J\366rg", resultStr).bad()); + } + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::DiscardIllegalSequences)) + { + OFCHECK(converter.setConversionFlags(OFCharacterEncoding::DiscardIllegalSequences).good()); + OFCHECK(converter.convertString("J\366rg", resultStr).good()); + OFCHECK_EQUAL(resultStr, "Jrg"); // discard mode removes characters that cannot be "translated" + } + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::TransliterateIllegalSequences)) + { + OFCHECK(converter.setConversionFlags(OFCharacterEncoding::TransliterateIllegalSequences).good()); + OFCHECK(converter.convertString("J\366rg", resultStr).good()); + OFCHECK_EQUAL(resultStr, "J\"org"); + } } else { // in case there is no libiconv, report a warning but do not fail DCMDATA_WARN("Cannot test DcmSpecificCharacterSet since the underlying character set conversion library is not available"); diff --git a/dcmfg/include/dcmtk/dcmfg/fgderimg.h b/dcmfg/include/dcmtk/dcmfg/fgderimg.h index 1b4c9c51..24b312eb 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgderimg.h +++ b/dcmfg/include/dcmtk/dcmfg/fgderimg.h @@ -169,41 +169,76 @@ public: */ virtual OFCondition check() const; - /** Convenience function to add item representing reference to a file. No + /** Convenience function to add item representing reference to an object. No * restrictions are set which frames or segments from this image has been * actually used. However, such information could be added to the source * image item later by modifying the resulting item being handed back to the * caller. - * @param file Files that should be referenced by their UID, must be readable. - * @param purposeOfReference Code representing the purpose of reference - * (Defined CID 7202) - * @param resultSourceImageItem The created derivation image item if - * successful, NULL otherwise - * @return EC_Normal if adding works, error code otherwise + * @param file Files that should be referenced by their UID, must be readable. + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItem The created derivation image item if + * successful, NULL otherwise + * @return EC_Normal if adding works, error code otherwise */ virtual OFCondition addSourceImageItem(const OFString& file, const CodeSequenceMacro& purposeOfReference, SourceImageItem*& resultSourceImageItem); - /** Convenience function to add items representing references to some files + /** Convenience function to add item representing reference to an object. No + * restrictions are set which frames or segments from this image has been + * actually used. However, such information could be added to the source + * image item later by modifying the resulting item being handed back to the + * caller. + * @param dataset DICOM dataset that should be referenced by their UID + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItem The created derivation image item if + * successful, NULL otherwise + * @return EC_Normal if adding works, error code otherwise + */ + virtual OFCondition addSourceImageItem(DcmDataset *dataset, + const CodeSequenceMacro& purposeOfReference, + SourceImageItem*& resultSourceImageItem); + + /** Convenience function to add items representing references to some objects * which all have the same purpose of reference (code). No restrictions are * set which frames or segments from those images have been actually used. * However, such information could be added to the source image item later by - * modifying the resulting item handed back to the caller. - * @param files List of files that should be referenced by their UIDs. - * @param purposeOfReference Code representing the purpose of reference - * (Defined CID 7202) - * @param resultSourceImageItems The created derivation image items (one per - * file) if successful, NULL otherwise - * @param skipFileErrors If OFTrue, then files that could not be added will - * not lead to error. - * @return EC_Normal if adding works, error code otherwise + * modifying the resulting item handed back to the caller. + * @param files List of files that should be referenced by their UIDs. + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItems The created derivation image items (one per + * file) if successful, NULL otherwise + * @param skipFileErrors If OFTrue, then files that could not be added will + * not lead to error. + * @return EC_Normal if adding works, error code otherwise */ virtual OFCondition addSourceImageItems(const OFVector& files, const CodeSequenceMacro& purposeOfReference, OFVector& resultSourceImageItems, const OFBool skipFileErrors = OFFalse); + /** Convenience function to add items representing references to some objects + * which all have the same purpose of reference (code). No restrictions are + * set which frames or segments from those images have been actually used. + * However, such information could be added to the source image item later by + * modifying the resulting item handed back to the caller. + * @param datasets List of datasets that should be referenced by their UIDs. + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItems The created derivation image items (one per + * file) if successful, NULL otherwise + * @param skipErrors If OFTrue, then files that could not be added will + * not lead to error. + * @return EC_Normal if adding works, error code otherwise + */ + virtual OFCondition addSourceImageItems(const OFVector& datasets, + const CodeSequenceMacro& purposeOfReference, + OFVector& resultSourceImageItems, + const OFBool skipErrors = OFFalse); + /** Get Derivation Description * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1), -1 for all components diff --git a/dcmfg/include/dcmtk/dcmfg/fgfracon.h b/dcmfg/include/dcmtk/dcmfg/fgfracon.h index 09abd86c..2aea9849 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgfracon.h +++ b/dcmfg/include/dcmtk/dcmfg/fgfracon.h @@ -279,14 +279,14 @@ public: /** Set one of the Dimension Index Values * @param value Value that should be set (lowest index starts with 1) - * @param pos The position of the value that should be set (lowest index + * @param dim The position of the value that should be set (lowest index * starts with 0), i.e.\ select the 1st, 2nd, ..nth dimension * @param checkValue Check 'value'. Not evaluated (here for consistency * with other setter functions). * @return EC_Normal, if value was set, error otherwise */ virtual OFCondition setDimensionIndexValues(const Uint32& value, - const unsigned int pos, + const unsigned int dim, const OFBool checkValue = OFTrue); /** Set Temporal Position Index diff --git a/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h b/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h new file mode 100644 index 00000000..c29a78e9 --- /dev/null +++ b/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h @@ -0,0 +1,157 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Michael Onken + * + * Purpose: Class for managing Frame Anatomy Functional Group + * + */ + +#ifndef FGFRAMEANATOMY_H +#define FGFRAMEANATOMY_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcitem.h" +#include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmfg/fgbase.h" + +/** Class representing the Frame Anatomy Functional Group Macro + */ +class DCMTK_DCMFG_EXPORT FGFrameAnatomy : public FGBase +{ +public: + + /** Enumerated values for attribute "Laterality" + */ + enum LATERALITY + { + /// Undefined (e.g.\ value not set) + LATERALITY_UNDEFINED, + /// Invalid Laterality, e.g. when invalid value is read from file + LATERALITY_INVALID, + /// Right body part + LATERALITY_R, + /// Left body part + LATERALITY_L, + /// Unpaired body part + LATERALITY_UNPAIRED, + /// Both, left and right + LATERALITY_BOTH + }; + + /** Constructor, creates empty Frame Anatomy Functional Group + */ + FGFrameAnatomy(); + + /** Virtual destructor, frees memory + */ + virtual ~FGFrameAnatomy(); + + /** Returns a deep copy of this object + * @return Deep copy of this object + */ + virtual FGBase *clone() const; + + /** Returns shared type of this group (can be shared or per-frame) + * @return Always returns DcmFGTypes::EFGS_BOTH; + */ + virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;} + + /** Clear all data + */ + virtual void clearData(); + + /** Check whether data in functional group is valid + * @return EC_Normal if data is valid, error otherwise + */ + virtual OFCondition check() const; + + /** Read functional group from given item + * @param item The item to read from, must contain Frame Anatomy Sequence + * @return EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& item); + + /** Write functional group to given item + * @param item The item to write Frame Anatomy Sequence to + * @return EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& item); + + // --- get() functionality --- + + /** Get Laterality + * @param value Reference to variable in which the value should be stored + * @return EC_Normal if successful, an error code otherwise (i.e. if + * value is LATERALITY_INVALID). + */ + virtual OFCondition getLaterality(LATERALITY& value); + + /** Get anatomy information + * @return Reference to anatomic information + */ + virtual GeneralAnatomyMacro& getAnatomy(); + + // --- set() functionality --- + + /** Set Laterality + * @param value Value to be set + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLaterality(const LATERALITY& value); + + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * functional groups (this and rhs parameter) are compared by value! + * Both objects (this and rhs) need to have the same type (i.e.\ both + * FGUnknown) to be comparable. This function is used in order + * to decide whether a functional group already exists, or is new. This + * is used in particular to find out whether a given functional group + * can be shared (i.e.\ the same information already exists as shared + * functional group) or is different from the same shared group. In that + * case the shared functional group must be distributed into per-frame + * functional groups, instead. The exact implementation for implementing + * the comparison is not relevant. However, it must be a comparison + * by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the this object, or all compared components match + * but this component is shorter. Also returned if this type and + * rhs type (DcmFGTypes::E_FGType) do not match. + * 1 if either the value of the first component that does not match + * is greater in this object, or all compared components match + * but this component is longer. + */ + virtual int compare(const FGBase& rhs) const; + + static LATERALITY str2Laterality(const OFString& lat); + + static OFString laterality2Str(const LATERALITY lat); + + static OFBool isLateralityValid(const LATERALITY lat); + +private: + + /* Content of Frame Anatomy Macro */ + + /// Frame Laterality (DS, VM 1, Required type 1) + LATERALITY m_FrameLaterality; + + /// General Anatomy Mandatory Macro + GeneralAnatomyMacro m_Anatomy; +}; + +#endif // FGFRAMEANATOMY_H diff --git a/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h b/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h new file mode 100644 index 00000000..5778ccd0 --- /dev/null +++ b/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h @@ -0,0 +1,174 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Identity Pixel Value Transformation Functional Group + * + */ + +#ifndef FGIDENTPIXELTRANSFORM_H +#define FGIDENTPIXELTRANSFORM_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcitem.h" +#include "dcmtk/dcmfg/fgbase.h" +#include "dcmtk/dcmdata/dcvrds.h" +#include "dcmtk/dcmdata/dcvrlo.h" + + +/** Class representing the Identity Pixel Value Transformation Functional Group Macro. + */ +class DCMTK_DCMFG_EXPORT FGIdentityPixelValueTransformation : public FGBase +{ +public: + + /** Constructor, creates Identity Pixel Value Transformation Functional Group. + * All values (Rescale Slope, Intercept and Type) are set to their only valid + * enumerated value listed in the standard, i.e. slope = 1, intercept = 0 and + * type = "US". + */ + FGIdentityPixelValueTransformation(); + + /** Destructor, frees memory + */ + virtual ~FGIdentityPixelValueTransformation(); + + /** Returns a deep copy of this object + * @return Deep copy of this object + */ + virtual FGBase *clone() const; + + /** Get shared type of this functional group (can be both, per-frame and + * shared) + * @return Always returns EFGS_BOTH + */ + virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;} + + /** Clears all data + */ + virtual void clearData(); + + /** Check whether functional group contains valid data + * @return EC_Normal if data is valid, error otherwise + */ + virtual OFCondition check() const; + + /** Read functional group from given item, i.e.\ read Identity Pixel Value + * Transformation Sequence. Clears existing data before reading. + * @param item The item to read from + * @return EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& item); + + /** Write functional group to given item, i.e.\ write Identity Pixel Value Transformation Sequence + * @param item The item to write to + * @return EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& item); + + /** Get RescaleIntercept + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRescaleIntercept(OFString &value, + const signed long pos = 0) const; + + /** Get RescaleSlope + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRescaleSlope(OFString &value, + const signed long pos = 0) const; + + /** Get RescaleType + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRescaleType(OFString &value, + const signed long pos = 0) const; + + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * functional groups (this and rhs parameter) are compared by value! + * Both objects (this and rhs) need to have the same type (i.e.\ both + * FGUnknown) to be comparable. This function is used in order + * to decide whether a functional group already exists, or is new. This + * is used in particular to find out whether a given functional group + * can be shared (i.e.\ the same information already exists as shared + * functional group) or is different from the same shared group. In that + * case the shared functional group must be distributed into per-frame + * functional groups, instead. The exact implementation for implementing + * the comparison is not relevant. However, it must be a comparison + * by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the this object, or all compared components match + * but this component is shorter. Also returned if this type and + * rhs type (DcmFGTypes::E_FGType) do not match. + * 1 if either the value of the first component that does not match + * is greater in this object, or all compared components match + * but this component is longer. + */ + virtual int compare(const FGBase& rhs) const; + +protected: + + /** Set RescaleIntercept. Hidden from user since value must always be equal + * to 1 (automatically set on write). + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRescaleIntercept(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set RescaleSlope. Hidden from user since value must always be equal + * to 1 (automatically set on write). + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRescaleSlope(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set RescaleType. Hidden from user since value must always be equal + * to "US" for "unspecified" (automatically set on write). + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRescaleType(const OFString &value, + const OFBool checkValue = OFTrue); + +private: + + /* Content of Identity Pixel Value Transformation Functional Group Macro */ + + /// RescaleIntercept (DS, VM 1, Required type 1) + DcmDecimalString m_RescaleIntercept; + + /// RescaleSlope (DS, VM 1, Required type 1) + DcmDecimalString m_RescaleSlope; + + /// RescaleType (LO, VM 1, Required type 1) + DcmLongString m_RescaleType; +}; + +#endif // FGIDENTPIXELTRANSFORM_H diff --git a/dcmfg/include/dcmtk/dcmfg/fginterface.h b/dcmfg/include/dcmtk/dcmfg/fginterface.h index 5af1df15..ba2c3da7 100644 --- a/dcmfg/include/dcmtk/dcmfg/fginterface.h +++ b/dcmfg/include/dcmtk/dcmfg/fginterface.h @@ -134,7 +134,7 @@ public: /** Add functional group that should be shared for all frames. This will * delete all per-frame groups of the same type if existing. - * @param group The group to be added (copy is performed) + * @param group The group to be added. The group is copied. * @return EC_Normal, if adding was successful, error otherwise */ virtual OFCondition addShared(const FGBase& group); @@ -148,7 +148,9 @@ public: * overwritten. * @param frameNo The frame number this group should be added for (starts * from 0) - * @param group The group to be added + * @param group The group to be added. The group is copied when adding, + * so the ownership stays with the caller, no matter what the + * method returns. * @return EC_Normal, if adding was successful, error otherwise */ virtual OFCondition addPerFrame(const Uint32 frameNo, @@ -162,7 +164,8 @@ public: virtual OFBool deleteShared(const DcmFGTypes::E_FGType fgType); /** Deletes per-frame functional group of the given type for a specific frame - * @param frameNo The frame number for the functional group of interest + * @param frameNo The frame number for the functional group of interest. + * First frame is frame 0. * @param fgType The type of functional group to delete * @return OFTrue if group existed and could be deleted, OFFalse (group did * not exist) otherwise @@ -173,10 +176,17 @@ public: /** Deletes per-frame functional group for all frames * @param fgType The type of functional group to delete * @return Number of per-frame groups deleted (usually equal to number of - * images) + * frames) */ size_t deletePerFrame(const DcmFGTypes::E_FGType fgType); + /** Deletes all functional groups for a specific frame + * @param frameNo The frame number whose functional groups should be deleted. + * First frame is frame 0. + * @return Number of per-frame groups deleted for this frame + */ + size_t deleteFrame(const Uint32 frameNo); + protected: /** Get shared functional group based on its type diff --git a/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h b/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h new file mode 100644 index 00000000..fd463464 --- /dev/null +++ b/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h @@ -0,0 +1,124 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Frame Type Functional Group + * + */ + +#ifndef FGPARAMETRICMAPFRAMETYPE_H +#define FGPARAMETRICMAPFRAMETYPE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcitem.h" +#include "dcmtk/dcmfg/fgbase.h" +#include "dcmtk/dcmdata/dcvrcs.h" + +/** Class representing the Parametric Map Frame Type Functional Group Macro. + */ +class DCMTK_DCMFG_EXPORT FGParametricMapFrameType : public FGBase +{ +public: + /** Constructor, creates empty Parametric Map Frame Type Functional Group + */ + FGParametricMapFrameType(); + + /** Destructor, frees memory + */ + virtual ~FGParametricMapFrameType(); + + /** Returns a deep copy of this object + * @return Deep copy of this object + */ + virtual FGBase *clone() const; + + /** Get shared type of this functional group (can be both, per-frame and + * shared) + * @return Always returns EFGS_BOTH + */ + virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;} + + /** Clears all data + */ + virtual void clearData(); + + /** Check whether functional group contains valid data + * @return EC_Normal if data is valid, error otherwise + */ + virtual OFCondition check() const; + + /** Read functional group from given item, i.e.\ read Parametric Map Frame Type Sequence + * @param item The item to read from + * @return EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& item); + + /** Write functional group to given item, i.e.\ write Parametric Map Frame Type Sequence + * @param item The item to write to + * @return EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& item); + + /** Get FrameType + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFrameType(OFString &value, + const signed long pos = 0) const; + + /** Set FrameType + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (4) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFrameType(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * functional groups (this and rhs parameter) are compared by value! + * Both objects (this and rhs) need to have the same type (i.e.\ both + * FGUnknown) to be comparable. This function is used in order + * to decide whether a functional group already exists, or is new. This + * is used in particular to find out whether a given functional group + * can be shared (i.e.\ the same information already exists as shared + * functional group) or is different from the same shared group. In that + * case the shared functional group must be distributed into per-frame + * functional groups, instead. The exact implementation for implementing + * the comparison is not relevant. However, it must be a comparison + * by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the this object, or all compared components match + * but this component is shorter. Also returned if this type and + * rhs type (DcmFGTypes::E_FGType) do not match. + * 1 if either the value of the first component that does not match + * is greater in this object, or all compared components match + * but this component is longer. + */ + virtual int compare(const FGBase& rhs) const; + +private: + + /* Content of Parametric Map Frame Type Functional Group Macro */ + + /// FrameType (CS, VM 4, Required type 1) + DcmCodeString m_FrameType; +}; + +#endif // FGPARAMETRICMAPFRAMETYPE_H diff --git a/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h b/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h index f585b2f5..0465b53f 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h +++ b/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h @@ -27,6 +27,7 @@ #include "dcmtk/dcmdata/dcitem.h" #include "dcmtk/dcmiod/modbase.h" #include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmiod/iodcontentitemmacro.h" /** Class representing the Real World Value Mapping Functional Group that * specifies the mapping of stored values to associated Real World values @@ -131,7 +132,7 @@ private: * LUT Explanation (LO, 1, 1) * LUT Label (SH, 1, 1) * Measurement Units Code Sequence (SQ, 1, 1) - * Not yet supported: Quantity Definition Sequence (SQ, 1, 3) + * Quantity Definition Sequence (SQ, 1, 3) */ class DCMTK_DCMFG_EXPORT FGRealWorldValueMapping::RWVMItem : public IODComponent { @@ -153,6 +154,11 @@ public: */ RWVMItem(IODComponent* parent = NULL); + /** Copy Constructor + * @param rhs The item to copy from + */ + RWVMItem(const RWVMItem& rhs); + /** Clone this class (perform deep copy) * @return Clone of this class or NULL (e.g.\ if memory exhausted) */ @@ -229,6 +235,22 @@ public: virtual OFCondition getRealWorldValueLastValueMapped(Sint32 &value, const unsigned long pos = 0) const; + /** Get Double Float Real World Value First Value Mapped + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64& value, + const unsigned long pos = 0) const; + + /** Get Double Float Real World Value Last Value Mapped + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64& value, + const unsigned long pos = 0) const; + /** Get Real World Value LUT Data * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1) @@ -264,6 +286,12 @@ public: */ virtual CodeSequenceMacro& getMeasurementUnitsCode(); + /** Get a reference to the entire ConceptNameCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ConceptNameCodeSequence + */ + virtual OFVector& getEntireQuantityDefinitionSequence(); + // --- set() functionality --- /** Set Real World Value First Value Mapped @@ -274,7 +302,7 @@ public: * if enabled * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 &value, + virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 value, const OFBool checkValue = OFTrue); /** Set Real World Value First Value Mapped @@ -296,7 +324,7 @@ public: * if enabled * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 &value, + virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 value, const OFBool checkValue = OFTrue); /** Set Real World Value Last Value Mapped @@ -308,7 +336,25 @@ public: * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition setRealWorldValueLastValueMappedSigned(const Sint16 &value, - const OFBool checkValue = OFTrue); + const OFBool checkValue = OFTrue); + + /** Set Double Float Real World Value First Value Mapped + * @param value Value to be set + * @param checkValue Check 'value'. Does nothing, only for consistency with + * other set() functions. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, + const OFBool checkValue = OFTrue); + + /** Set Double Float Real World Value Last Value Mapped + * @param value Value to be set + * @param checkValue Check 'value'. Does nothing, only for consistency with + * other set() functions. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, + const OFBool checkValue = OFTrue); /** Set Real World Value Intercept * @param value Value to be set @@ -316,7 +362,7 @@ public: * with other setter functions). * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueIntercept(const Float64& value, + virtual OFCondition setRealWorldValueIntercept(const Float64 value, const OFBool checkValue = OFTrue); /** Set Real World Value Slope @@ -325,7 +371,7 @@ public: * with other setter functions). * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueSlope(const Float64& value, + virtual OFCondition setRealWorldValueSlope(const Float64 value, const OFBool checkValue = OFTrue); /** Set Real World Value LUT Data @@ -367,7 +413,8 @@ private: /// Measurement Units Code Sequence CodeSequenceMacro m_MeasurementUnitsCode; - /// TODO Content Item Macro for Quantity Definition Sequence + /// Quantity Definition Sequence + OFVector m_QuantityDefinitionSequence; }; #endif // FGREALWORLDVALUEMAPPING_H diff --git a/dcmfg/include/dcmtk/dcmfg/fgtypes.h b/dcmfg/include/dcmtk/dcmfg/fgtypes.h index 451cfe7c..22bdfca3 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgtypes.h +++ b/dcmfg/include/dcmtk/dcmfg/fgtypes.h @@ -48,7 +48,7 @@ extern DCMTK_DCMFG_EXPORT OFLogger DCM_dcmfgLogger; * constant definitions * *-----------------------*/ -/* Specific error conditions for module dcmfg.(TODO) +/* Specific error conditions for module dcmfg. * These error codes can be used in addition to the general purpose * codes defined in module dcmdata. */ @@ -120,10 +120,14 @@ public: EFG_FRAMEPIXELSHIFT, /// "Frame VOI LUT" or "Frame VOI LUT with LUT" Macro (share same starting sequence) EFG_FRAMEVOILUTMETA, + /// Identity Pixel Value Transformation + EFG_IDENTITYPIXELVALUETRANSFORMATION, /// Image Data Type EFG_IMAGEDATATYPE, /// Irradiation Event Identification EFG_IRRADIATIONEVENTIDENT, + /// Parametric Map Frame Type + EFG_PARAMETRICMAPFRAMETYPE, /// Patient Orientation in Frame EFG_PATIENTORIENTINFRAME, /// Patient Physiological State diff --git a/dcmfg/include/dcmtk/dcmfg/stack.h b/dcmfg/include/dcmtk/dcmfg/stack.h index 6e3e107d..a04b84a2 100644 --- a/dcmfg/include/dcmtk/dcmfg/stack.h +++ b/dcmfg/include/dcmtk/dcmfg/stack.h @@ -76,8 +76,6 @@ public: */ virtual ~FGStack(); - // TODO add sorted iterators using views, for example - /** Return const iterator to first frame (not sorted after stack position) * @return Const iterator to first frame */ @@ -137,8 +135,6 @@ private: /// More than one frame can have the same in-stack position OFMap m_FrameNumbers; - // TODO Maybe add a redundant data structures mapping in-stack positions - // to frame numbers in order to enable fast access? }; #endif // STACKREADER_H diff --git a/dcmfg/libsrc/CMakeLists.txt b/dcmfg/libsrc/CMakeLists.txt index c37d8683..6d2afe3d 100644 --- a/dcmfg/libsrc/CMakeLists.txt +++ b/dcmfg/libsrc/CMakeLists.txt @@ -5,10 +5,13 @@ DCMTK_ADD_LIBRARY(dcmfg fgderimg fgfact fgfracon + fgframeanatomy fgframevoilut + fgidentpixeltransform fgimagedatatype fginterface fgpixmsr + fgparametricmapframetype fgplanor fgplanorvol fgplanpo diff --git a/dcmfg/libsrc/Makefile.dep b/dcmfg/libsrc/Makefile.dep index 62c13c95..8617090d 100644 --- a/dcmfg/libsrc/Makefile.dep +++ b/dcmfg/libsrc/Makefile.dep @@ -429,6 +429,8 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -459,11 +461,9 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -494,13 +494,18 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \ - ../include/dcmtk/dcmfg/fgfracon.h ../include/dcmtk/dcmfg/fgframevoilut.h \ + ../include/dcmtk/dcmfg/fgfracon.h \ + ../include/dcmtk/dcmfg/fgframeanatomy.h \ + ../include/dcmtk/dcmfg/fgframevoilut.h \ + ../include/dcmtk/dcmfg/fgidentpixeltransform.h \ ../include/dcmtk/dcmfg/fgimagedatatype.h \ + ../include/dcmtk/dcmfg/fgparametricmapframetype.h \ ../include/dcmtk/dcmfg/fgpixmsr.h ../include/dcmtk/dcmfg/fgplanor.h \ ../include/dcmtk/dcmfg/fgplanorvol.h ../include/dcmtk/dcmfg/fgplanpo.h \ ../include/dcmtk/dcmfg/fgplanposvol.h ../include/dcmtk/dcmfg/fgseg.h \ ../include/dcmtk/dcmfg/fgusimagedescription.h \ - ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h + ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ @@ -561,6 +566,8 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -590,11 +597,9 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -623,6 +628,131 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \ ../include/dcmtk/dcmfg/fgdefine.h +fgframeanatomy.o: fgframeanatomy.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \ + ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h fgframevoilut.o: fgframevoilut.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ @@ -684,6 +814,8 @@ fgframevoilut.o: fgframevoilut.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -714,11 +846,132 @@ fgframevoilut.o: fgframevoilut.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmfg/fgdefine.h +fgidentpixeltransform.o: fgidentpixeltransform.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -807,6 +1060,8 @@ fgimagedatatype.o: fgimagedatatype.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -837,11 +1092,9 @@ fgimagedatatype.o: fgimagedatatype.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -933,6 +1186,8 @@ fginterface.o: fginterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ @@ -960,11 +1215,9 @@ fginterface.o: fginterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -994,6 +1247,129 @@ fginterface.o: fginterface.cc \ ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \ ../include/dcmtk/dcmfg/fg.h ../include/dcmtk/dcmfg/fgbase.h \ ../include/dcmtk/dcmfg/fgfact.h +fgparametricmapframetype.o: fgparametricmapframetype.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmfg/fgdefine.h fgpixmsr.o: fgpixmsr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmfg/fgpixmsr.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ @@ -1300,6 +1676,8 @@ fgplanorvol.o: fgplanorvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -1330,11 +1708,9 @@ fgplanorvol.o: fgplanorvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -1544,6 +1920,8 @@ fgplanposvol.o: fgplanposvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -1574,11 +1952,9 @@ fgplanposvol.o: fgplanposvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -1730,6 +2106,7 @@ fgrealworldvaluemapping.o: fgrealworldvaluemapping.cc \ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h fgseg.o: fgseg.cc ../../config/include/dcmtk/config/osconfig.h \ @@ -2048,6 +2425,8 @@ fgusimagedescription.o: fgusimagedescription.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -2078,11 +2457,9 @@ fgusimagedescription.o: fgusimagedescription.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -2185,6 +2562,8 @@ stackinterface.o: stackinterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -2215,11 +2594,9 @@ stackinterface.o: stackinterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ diff --git a/dcmfg/libsrc/fg.cc b/dcmfg/libsrc/fg.cc index c7fe5da5..b97d2f19 100644 --- a/dcmfg/libsrc/fg.cc +++ b/dcmfg/libsrc/fg.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -53,7 +53,8 @@ FGBase* FunctionalGroups::find(const DcmFGTypes::E_FGType fgType) { FGBase* group = NULL; FunctionalGroups::iterator it = m_groups.find(fgType); - if ( it != m_groups.end() ) + FunctionalGroups::iterator done = m_groups.end(); + if ( it != done) { group = (*it).second; } diff --git a/dcmfg/libsrc/fgbase.cc b/dcmfg/libsrc/fgbase.cc index 0e585260..3cb43c36 100644 --- a/dcmfg/libsrc/fgbase.cc +++ b/dcmfg/libsrc/fgbase.cc @@ -162,7 +162,6 @@ OFCondition FGUnknown::write(DcmItem& item) OFCondition FGUnknown::check() const { - // TODO return EC_Normal; } diff --git a/dcmfg/libsrc/fgderimg.cc b/dcmfg/libsrc/fgderimg.cc index e8776da3..c517ea6f 100644 --- a/dcmfg/libsrc/fgderimg.cc +++ b/dcmfg/libsrc/fgderimg.cc @@ -157,8 +157,15 @@ void FGDerivationImage::clearData() OFCondition FGDerivationImage::check() const { - // TODO - return EC_Normal; + OFCondition result; + OFVector::const_iterator it = m_DerivationImageItems.begin(); + while ( (it != m_DerivationImageItems.end()) && result.good() ) + { + result = (*it)->check(); + it++; + } + + return result; } DerivationImageItem& DerivationImageItem::operator=(const DerivationImageItem& rhs) @@ -243,7 +250,7 @@ OFCondition FGDerivationImage::read(DcmItem& item) OFCondition FGDerivationImage::write(DcmItem& item) { - OFCondition result = EC_Normal; + OFCondition result = check(); DcmIODUtil::writeSubSequence > ( result, DCM_DerivationImageSequence, @@ -288,8 +295,13 @@ void SourceImageItem::clearData() OFCondition SourceImageItem::check() const { - // TODO - return EC_Normal; + OFCondition result = OFconst_cast(ImageSOPInstanceReferenceMacro*, &m_ImageSOPInstanceReference)->check(); + if (result.bad()) + { + return result; + } + + return OFconst_cast(CodeSequenceMacro*, &m_PurposeOfReferenceCode)->check(); } @@ -351,7 +363,7 @@ OFCondition SourceImageItem::write(DcmItem& itemOfSourceImageSequence) } -/* -- Class DerivationImages Implementation -- */ +/* -- Class DerivationImageItem Implementation -- */ DerivationImageItem::DerivationImageItem() : m_DerivationDescription(DCM_DerivationDescription), @@ -459,10 +471,28 @@ int DerivationImageItem::compare(const DerivationImageItem& rhs) const OFCondition DerivationImageItem::check() const { - // TODO - return EC_Normal; -} + if (m_DerivationCodeItems.size() == 0) + { + DCMFG_ERROR("Derivation Code Sequence in Derivation Image Functional Group Macro must have one or more items"); + return FG_EC_InvalidData; + } + OFCondition result; + OFVector::const_iterator it = m_DerivationCodeItems.begin(); + while (it != m_DerivationCodeItems.end() && result.good()) + { + result = (*it)->check(); + it++; + } + + OFVector::const_iterator ref = m_SourceImageItems.begin(); + while ((ref != m_SourceImageItems.end()) && result.good()) + { + result = (*ref)->check(); + ref++; + } + return result; +} DerivationImageItem::~DerivationImageItem() @@ -474,6 +504,23 @@ DerivationImageItem::~DerivationImageItem() OFCondition DerivationImageItem::addSourceImageItem(const OFString& file, const CodeSequenceMacro& purposeOfReference, SourceImageItem*& resultSourceImageItem) +{ + DcmFileFormat dcmff; + DcmDataset *dataset = NULL; + OFCondition result = dcmff.loadFile(file.c_str()); + if (result.bad()) + { + DCMFG_ERROR("Could not load file " << file << ": " << result.text()); + return result; + } + dataset = dcmff.getDataset(); + return addSourceImageItem(dataset, purposeOfReference, resultSourceImageItem); +} + + +OFCondition DerivationImageItem::addSourceImageItem(DcmDataset *dataset, + const CodeSequenceMacro& purposeOfReference, + SourceImageItem*& resultSourceImageItem) { // Create new source image item SourceImageItem *item = new SourceImageItem(); @@ -481,11 +528,18 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file, { return EC_MemoryExhausted; } + + // check code validity + if ( OFconst_cast(CodeSequenceMacro*, &purposeOfReference)->check().bad() ) + { + DCMFG_ERROR("Purpose of Reference code within item of Derivation Image Sequence is invalid"); + return FG_EC_InvalidData; + } + item->getPurposeOfReferenceCode() = purposeOfReference; - // TODO: Check code for completeness, and context group? resultSourceImageItem = NULL; OFString sopClass, sopInstance, ts; - OFCondition result = DcmDataUtil::getSOPInstanceFromFile(file, sopClass, sopInstance, ts /*ignored*/); + OFCondition result = DcmDataUtil::getSOPInstanceFromDataset(dataset, EXS_Unknown, sopClass, sopInstance, ts /*ignored*/); { if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPClassUID(sopClass); if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPInstanceUID(sopInstance); @@ -495,6 +549,11 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file, m_SourceImageItems.push_back(item); resultSourceImageItem = item; } + else + { + delete item; + } + return result; } @@ -504,10 +563,35 @@ OFCondition DerivationImageItem::addSourceImageItems(const OFVector< OFString >& OFVector& resultSourceImageItems, const OFBool skipErrors) { - // Add files + DcmFileFormat dcmff; OFCondition result; + DcmDataset *dataset = NULL; + OFVector datasets; OFVector::const_iterator it = files.begin(); while (it != files.end()) + { + result = dcmff.loadFile((*it).c_str()); + if (result.bad()) + { + DCMFG_ERROR("Could not load file " << (*it) << ": " << result.text()); + return result; + } + dataset = dcmff.getDataset(); + datasets.push_back(dataset); + it++; + } + return addSourceImageItems(datasets, purposeOfReference, resultSourceImageItems, skipErrors); +} + + +OFCondition DerivationImageItem::addSourceImageItems(const OFVector& datasets, + const CodeSequenceMacro& purposeOfReference, + OFVector& resultSourceImageItems, + const OFBool skipErrors) + { + OFCondition result; + OFVector::const_iterator it = datasets.begin(); + while (it != datasets.end()) { SourceImageItem* resultItem = NULL; result = addSourceImageItem((*it), purposeOfReference, resultItem); diff --git a/dcmfg/libsrc/fgfact.cc b/dcmfg/libsrc/fgfact.cc index 6285a310..c8fcd303 100644 --- a/dcmfg/libsrc/fgfact.cc +++ b/dcmfg/libsrc/fgfact.cc @@ -24,8 +24,11 @@ #include "dcmtk/dcmfg/fgfact.h" #include "dcmtk/dcmfg/fgderimg.h" #include "dcmtk/dcmfg/fgfracon.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" #include "dcmtk/dcmfg/fgframevoilut.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" #include "dcmtk/dcmfg/fgimagedatatype.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" #include "dcmtk/dcmfg/fgpixmsr.h" #include "dcmtk/dcmfg/fgplanor.h" #include "dcmtk/dcmfg/fgplanorvol.h" @@ -62,11 +65,18 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype) case DcmFGTypes::EFG_PIXELMEASURES: return new FGPixelMeasures(); break; + case DcmFGTypes::EFG_FRAMEANATOMY: + return new FGFrameAnatomy(); + break; case DcmFGTypes::EFG_FRAMECONTENT: return new FGFrameContent(); break; case DcmFGTypes::EFG_FRAMEVOILUTMETA: // Frame VOI LUT and Frame VOI LUT with LUT return new FGFrameVOILUT(); + break; + case DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE: + return new FGParametricMapFrameType; + break; case DcmFGTypes::EFG_PLANEPOSPATIENT: return new FGPlanePosPatient(); break; @@ -80,6 +90,9 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype) case DcmFGTypes::EFG_DERIVATIONIMAGE: return new FGDerivationImage(); break; + case DcmFGTypes::EFG_IDENTITYPIXELVALUETRANSFORMATION: + return new FGIdentityPixelValueTransformation(); + break; case DcmFGTypes::EFG_IMAGEDATATYPE: return new FGImageDataType(); break; @@ -93,7 +106,6 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype) return new FGUSImageDescription(); break; case DcmFGTypes::EFG_CARDIACSYNC: - case DcmFGTypes::EFG_FRAMEANATOMY: case DcmFGTypes::EFG_PIXELVALUETRANSMETA: // Pixel Value Transformation Macro or Identity Pixel Value Transformation Macro case DcmFGTypes::EFG_CONTRASTBOLUSUSAGE: case DcmFGTypes::EFG_PIXELINTENSITYRELLUT: diff --git a/dcmfg/libsrc/fgfracon.cc b/dcmfg/libsrc/fgfracon.cc index 0d307317..e60124f6 100644 --- a/dcmfg/libsrc/fgfracon.cc +++ b/dcmfg/libsrc/fgfracon.cc @@ -91,7 +91,7 @@ void FGFrameContent::clearData() OFCondition FGFrameContent::check() const { - // TODO + // Maybe add checks later return EC_Normal; } @@ -315,7 +315,7 @@ OFCondition FGFrameContent::setRespiratoryCyclePosition(const OFString& value, } OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value, - const unsigned int pos, + const unsigned int dim, const OFBool checkValue) { // no other meaningful checks possible in this context @@ -325,7 +325,7 @@ OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value, DCMFG_ERROR("Cannot set dimension index value 0, must be >= 1)"); return EC_InvalidValue; } - return m_DimensionIndexValues.putUint32(value, pos); + return m_DimensionIndexValues.putUint32(value, dim); } OFCondition FGFrameContent::setTemporalPositionIndex(const Uint32& value, diff --git a/dcmfg/libsrc/fgframeanatomy.cc b/dcmfg/libsrc/fgframeanatomy.cc new file mode 100644 index 00000000..1a4cae02 --- /dev/null +++ b/dcmfg/libsrc/fgframeanatomy.cc @@ -0,0 +1,203 @@ +/* + * + * Copyright (C) 2015-2017, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Michael Onken + * + * Purpose: Class for managing Frame Anatomy Functional Group + * + */ + + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmiod/iodutil.h" + + +FGFrameAnatomy::FGFrameAnatomy() +: FGBase(DcmFGTypes::EFG_FRAMEANATOMY), + m_FrameLaterality(LATERALITY_UNDEFINED), + m_Anatomy("1" /* Use Mandatory version of macro, i.e. make "Anatomic Region Sequence type 1" */) +{ +} + + +FGFrameAnatomy::~FGFrameAnatomy() +{ + // nothing to do +} + + +FGBase* FGFrameAnatomy::clone() const +{ + FGFrameAnatomy* copy = new FGFrameAnatomy(); + if (copy) + { + copy->m_FrameLaterality= this->m_FrameLaterality; + copy->m_Anatomy = this->m_Anatomy; + } + return copy; +} + + +void FGFrameAnatomy::clearData() +{ + m_FrameLaterality = LATERALITY_UNDEFINED; + m_Anatomy.clearData(); +} + + +OFCondition FGFrameAnatomy::check() const +{ + if (!isLateralityValid(m_FrameLaterality)) + { + DCMFG_ERROR("Frame Laterality invalid"); + return FG_EC_InvalidData; + } + return OFconst_cast(GeneralAnatomyMacro*, &m_Anatomy)->check(); +} + + +int FGFrameAnatomy::compare(const FGBase& rhs) const +{ + int result = FGBase::compare(rhs); + if (result != 0) + return result; + + const FGFrameAnatomy* myRhs = OFstatic_cast(const FGFrameAnatomy*, &rhs); + + // Compare all elements + if (m_FrameLaterality != myRhs->m_FrameLaterality) + return 1; + + return m_Anatomy.compare(myRhs->m_Anatomy); +} + + +/// Read from Frame Content Sequence +OFCondition FGFrameAnatomy::read(DcmItem& item) +{ + clearData(); + + OFCondition result; + DcmItem* seqItem = NULL; + result = getItemFromFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem); + if (result.bad()) + return result; + + DcmCodeString elem(DCM_FrameLaterality); + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, elem, "1", "1", "FrameAnatomyMacro"); + OFString val; + elem.getOFStringArray(val); + m_FrameLaterality = str2Laterality(val); + + m_Anatomy.read(*seqItem); + + return EC_Normal; +} + + +OFCondition FGFrameAnatomy::write(DcmItem& item) +{ + OFCondition result = check(); + if (result.good()) + { + DcmItem* seqItem = NULL; + result = createNewFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem); + if (result.good()) + { + OFString lat = laterality2Str(m_FrameLaterality); + result = seqItem->putAndInsertOFStringArray(DCM_FrameLaterality, lat); + if (result.good()) + { + result = m_Anatomy.write(*seqItem); + } + } + } + + return result; +} + + +OFCondition FGFrameAnatomy::getLaterality(FGFrameAnatomy::LATERALITY& value) +{ + value = m_FrameLaterality; + return EC_Normal; +} + + +GeneralAnatomyMacro& FGFrameAnatomy::getAnatomy() +{ + return m_Anatomy; +} + + +OFCondition FGFrameAnatomy::setLaterality(const FGFrameAnatomy::LATERALITY& value) +{ + if (isLateralityValid(value)) + { + m_FrameLaterality = value; + return EC_Normal; + } + else + { + return FG_EC_InvalidData; + } +} + + +OFString FGFrameAnatomy::laterality2Str(const FGFrameAnatomy::LATERALITY lat) +{ + switch(lat) + { + case LATERALITY_INVALID: return "Invalid"; + case LATERALITY_L: return "L"; + case LATERALITY_R: return "R"; + case LATERALITY_BOTH: return "B"; + case LATERALITY_UNDEFINED: return "Undefined"; + case LATERALITY_UNPAIRED: return "U"; + default: return "Invalid"; + } +} + + +FGFrameAnatomy::LATERALITY FGFrameAnatomy::str2Laterality(const OFString& lat) +{ + if (lat == "L") + return LATERALITY_L; + if (lat == "R") + return LATERALITY_R; + if (lat == "U") + return LATERALITY_UNPAIRED; + if (lat == "B") + return LATERALITY_BOTH; + + if (lat.empty()) + return LATERALITY_UNDEFINED; + + return LATERALITY_INVALID; + +} + + +OFBool FGFrameAnatomy::isLateralityValid(const FGFrameAnatomy::LATERALITY lat) +{ + if ( (lat == LATERALITY_L) || (lat == LATERALITY_R) || (lat == LATERALITY_BOTH) || + (lat == LATERALITY_UNPAIRED) ) + return OFTrue; + else + return OFFalse; +} + diff --git a/dcmfg/libsrc/fgframevoilut.cc b/dcmfg/libsrc/fgframevoilut.cc index 3b220122..2b04ac09 100644 --- a/dcmfg/libsrc/fgframevoilut.cc +++ b/dcmfg/libsrc/fgframevoilut.cc @@ -67,7 +67,7 @@ void FGFrameVOILUT::clearData() OFCondition FGFrameVOILUT::check() const { - // TODO + // For now attribute-based checks in read() and write() are sufficient return EC_Normal; } diff --git a/dcmfg/libsrc/fgidentpixeltransform.cc b/dcmfg/libsrc/fgidentpixeltransform.cc new file mode 100644 index 00000000..ef5f6d42 --- /dev/null +++ b/dcmfg/libsrc/fgidentpixeltransform.cc @@ -0,0 +1,229 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Identity Pixel Value Transformation + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" + +FGIdentityPixelValueTransformation::FGIdentityPixelValueTransformation() +: FGBase(DcmFGTypes::EFG_UNDEFINED) +, m_RescaleIntercept(DCM_RescaleIntercept) +, m_RescaleSlope(DCM_RescaleSlope) +, m_RescaleType(DCM_RescaleType) +{ + m_RescaleIntercept.putOFStringArray("0"); + m_RescaleSlope.putOFStringArray("1"); + m_RescaleType.putOFStringArray("US"); +} + + +FGIdentityPixelValueTransformation::~FGIdentityPixelValueTransformation() +{ + +} + + +OFCondition FGIdentityPixelValueTransformation::check() const +{ + Float64 rs, ri; + rs = ri = 0; + OFString rt; + OFBool ok = OFTrue; + if (OFconst_cast(DcmDecimalString*, &m_RescaleIntercept)->getFloat64(ri).good()) + { + if (ri != 0) + { + DCMFG_ERROR("Rescale Intercept in Identity Pixel Value Transformation FG must be 0 but is set to " << ri); + ok = OFFalse; + } + } + else + { + DCMFG_ERROR("Invalid or no value for Rescale Intercept in Identity Pixel Value Transformation FG (0 is the only valid value"); + ok = OFFalse; + } + + if (OFconst_cast(DcmDecimalString*, &m_RescaleSlope)->getFloat64(rs).good()) + { + if (rs != 1) + { + DCMFG_ERROR("Rescale Slope in Identity Pixel Value Transformation FG must be 1 but is set to " << rs); + ok = OFFalse; + } + } + else + { + DCMFG_ERROR("Invalid or no value for Rescale Slope in Identity Pixel Value Transformation FG (1 is the only valid value"); + ok = OFFalse; + } + + if (OFconst_cast(DcmLongString*, &m_RescaleType)->getOFStringArray(rt).good()) + { + if (rt != "US") + { + DCMFG_ERROR("Rescale Type in Identity Pixel Value Transformation FG must be \"US\" but is set to " << rt); + ok = OFFalse; + } + } + else + { + DCMFG_ERROR("Invalid or no value for Rescale Type in Identity Pixel Value Transformation FG (\"US\" is the only valid value"); + ok = OFFalse; + } + if (ok) + { + return EC_Normal; + } + else + { + return FG_EC_InvalidData; + } +} + + +void FGIdentityPixelValueTransformation::clearData() +{ + m_RescaleIntercept.clear(); + m_RescaleSlope.clear(); + m_RescaleType.clear(); +} + + +FGBase* FGIdentityPixelValueTransformation::clone() const +{ + if(FGIdentityPixelValueTransformation* copy = new FGIdentityPixelValueTransformation) + { + copy->m_RescaleIntercept = m_RescaleIntercept; + copy->m_RescaleSlope = m_RescaleSlope; + copy->m_RescaleType = m_RescaleType; + return copy; + } + return OFnullptr; +} + + +OFCondition FGIdentityPixelValueTransformation::read(DcmItem& item) +{ + clearData(); + + DcmItem* seqItem; + OFCondition result; + + seqItem = OFnullptr; + result = getItemFromFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem); + if(result.bad()) + return result; + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation"); + + return EC_Normal; +} + + +OFCondition FGIdentityPixelValueTransformation::write(DcmItem& item) +{ + DcmItem* seqItem; + DCMFG_DEBUG("Identity Pixel Value Transformation Macro: Fixing values for Rescale Slope, Intercept and Type to enumerated values '1', '0' and 'US'"); + m_RescaleSlope.putOFStringArray("1"); + m_RescaleIntercept.putOFStringArray("0"); + m_RescaleType.putOFStringArray("US"); + + seqItem = OFnullptr; + OFCondition result = createNewFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem); + if(result.bad()) + return result; + DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation"); + + return result; +} + + +int FGIdentityPixelValueTransformation::compare(const FGBase& rhs) const +{ + int result = FGBase::compare(rhs); + if(result == 0) + { + const FGIdentityPixelValueTransformation* myRhs = OFstatic_cast(const FGIdentityPixelValueTransformation*, &rhs); + + // Compare all elements + result = m_RescaleIntercept.compare(myRhs->m_RescaleIntercept); + result = m_RescaleSlope.compare(myRhs->m_RescaleSlope); + result = m_RescaleType.compare(myRhs->m_RescaleType); + } + + return result; +} + + +OFCondition FGIdentityPixelValueTransformation::getRescaleIntercept(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_RescaleIntercept, value, pos); +} + + +OFCondition FGIdentityPixelValueTransformation::getRescaleSlope(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_RescaleSlope, value, pos); +} + + +OFCondition FGIdentityPixelValueTransformation::getRescaleType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_RescaleType, value, pos); +} + + +OFCondition FGIdentityPixelValueTransformation::setRescaleIntercept(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_RescaleIntercept.putString(value.c_str()); + return result; +} + + +OFCondition FGIdentityPixelValueTransformation::setRescaleSlope(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_RescaleSlope.putString(value.c_str()); + return result; +} + + +OFCondition FGIdentityPixelValueTransformation::setRescaleType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_RescaleType.putString(value.c_str()); + return result; +} + diff --git a/dcmfg/libsrc/fgimagedatatype.cc b/dcmfg/libsrc/fgimagedatatype.cc index dc71962a..af6ea142 100644 --- a/dcmfg/libsrc/fgimagedatatype.cc +++ b/dcmfg/libsrc/fgimagedatatype.cc @@ -74,7 +74,7 @@ void FGImageDataType::clearData() OFCondition FGImageDataType::check() const { - // TODO + // For now, checks in read() and write() are sufficient return EC_Normal; } @@ -228,6 +228,19 @@ OFCondition FGImageDataType::write(DcmItem& item) { DcmIODUtil::copyElementToDataset(result, *seqItem, m_ZeroVelocityPixelValueUS, "1", "1C", "ImageDataTypeMacro"); } + // Zero Velocity Pixel Value is required in case Data Type is TISSUE_VELOCITY, + // FLOW_VELOCITY or DIRECTION_POWER. + else + { + OFString val; + m_DataType.getOFStringArray(val); + if ( (val == "TISSUE_VELOCITY") || (val == "FLOW_VELOCITY") || (val == "DIRECTION_POWER") ) + { + DCMFG_ERROR("Missing value for Zero Velocity Pixel Value (required if Data Type has" << + "the value TISSUE_VELOCITY, FLOW_VELOCITY or DIRECTION_POWER"); + return FG_EC_InvalidData; + } + } return result; } diff --git a/dcmfg/libsrc/fginterface.cc b/dcmfg/libsrc/fginterface.cc index 08447114..c7c08023 100644 --- a/dcmfg/libsrc/fginterface.cc +++ b/dcmfg/libsrc/fginterface.cc @@ -250,11 +250,11 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset) } /* Read functional groups for each item (one per frame) */ - for (size_t count = 0; count < numFrames; count++) + DcmItem *oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(NULL)); + Uint32 count = 0; + while (oneFrameItem != NULL) { - DcmItem* oneFrameItem = perFrame->getItem(count); OFauto_ptr perFrameGroups(new FunctionalGroups()); - // FunctionalGroups* perFrameGroups = new FunctionalGroups(); if (!oneFrameItem) { DCMFG_ERROR("Could not get functional group item for frame #" << count << " (internal error)"); @@ -278,6 +278,8 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset) DCMFG_ERROR("Could not read functional groups for frame #" << count << ": " << result.text()); } } + oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(oneFrameItem)); + count++; } return EC_Normal; // for now we always return EC_Normal... } @@ -353,7 +355,6 @@ OFCondition FGInterface::write(DcmItem& dataset) } -// TODO: overload (templates?) to return correct derived class type? FGBase* FGInterface::getShared(const DcmFGTypes::E_FGType fgType) { return m_shared.find(fgType); @@ -432,6 +433,25 @@ size_t FGInterface::deletePerFrame(const DcmFGTypes::E_FGType fgType) } +size_t FGInterface::deleteFrame(const Uint32 frameNo) +{ + OFMap::iterator it = m_perFrame.find(frameNo); + if (it != m_perFrame.end()) + { + if ( (*it).second ) + { + FunctionalGroups::iterator fg = (*it).second->begin(); + while (fg != (*it).second->end()) + { + delete (*fg).second; + fg++; + } + } + m_perFrame.erase(it); + } + return OFFalse; +} + FunctionalGroups* FGInterface::getOrCreatePerFrameGroups(const Uint32 frameNo) { @@ -512,7 +532,8 @@ OFCondition FGInterface::writeSharedFG(DcmItem& dataset) } FunctionalGroups::iterator it = m_shared.begin(); - while ( (it != m_shared.end()) && result.good() ) + FunctionalGroups::iterator end = m_shared.end(); + while ( (it != end) && result.good() ) { DCMFG_DEBUG("Writing shared group: " << DcmFGTypes::FGType2OFString((*it).second->getType())); result = (*it).second->write(*sharedFGItem); @@ -623,10 +644,12 @@ OFBool FGInterface::check() // Every frame requires the FrameContent functional group, check "en passant" OFBool foundFrameContent = OFFalse; OFMap::iterator frameFG = m_perFrame.begin(); - while (frameFG != m_perFrame.end()) + OFMap::iterator end = m_perFrame.end(); + while (frameFG != end) { FunctionalGroups::iterator group = (*frameFG).second->begin(); - while (group != (*frameFG).second->end()) + FunctionalGroups::iterator groupEnd = (*frameFG).second->end(); + while (group != groupEnd) { // Check that per-frame group is not shared group at the same time DcmFGTypes::E_FGType groupType = group->second->getType(); @@ -660,7 +683,8 @@ OFBool FGInterface::check() // Check whether shared groups contain FGs that are only permitted per-frame FunctionalGroups::iterator it = m_shared.begin(); - while (it != m_shared.begin()) + FunctionalGroups::iterator end = m_shared.end(); + while (it != end) { if ( (*it).second->getSharedType() == DcmFGTypes::EFGS_ONLYPERFRAME ) { diff --git a/dcmfg/libsrc/fgparametricmapframetype.cc b/dcmfg/libsrc/fgparametricmapframetype.cc new file mode 100644 index 00000000..b60a57e4 --- /dev/null +++ b/dcmfg/libsrc/fgparametricmapframetype.cc @@ -0,0 +1,145 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Frame Type + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" + +FGParametricMapFrameType::FGParametricMapFrameType() +: FGBase(DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE) +, m_FrameType(DCM_FrameType) +{ + +} + +FGParametricMapFrameType::~FGParametricMapFrameType() +{ + +} + +void FGParametricMapFrameType::clearData() +{ + m_FrameType.clear(); +} + +FGBase* FGParametricMapFrameType::clone() const +{ + if(FGParametricMapFrameType* copy = new FGParametricMapFrameType) + { + copy->m_FrameType = m_FrameType; + return copy; + } + return OFnullptr; +} + +OFCondition FGParametricMapFrameType::read(DcmItem& item) +{ + clearData(); + + DcmItem* seqItem; + OFCondition result; + + seqItem = OFnullptr; + result = getItemFromFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem); + if(result.bad()) + return result; + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type"); + + return EC_Normal; +} + + +OFCondition FGParametricMapFrameType::write(DcmItem& item) +{ + OFCondition result = check(); + if (result.good()) + { + DcmItem* seqItem; + seqItem = OFnullptr; + result = createNewFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem); + if(result.good()) + { + DcmIODUtil::copyElementToDataset(result, *seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type"); + } + } + return result; +} + + +int FGParametricMapFrameType::compare(const FGBase& rhs) const +{ + int result = FGBase::compare(rhs); + if(result == 0) + { + const FGParametricMapFrameType* myRhs = OFstatic_cast(const FGParametricMapFrameType*, &rhs); + + // Compare all elements + result = m_FrameType.compare(myRhs->m_FrameType); + } + + return result; +} + + +OFCondition FGParametricMapFrameType::check() const +{ + DcmCodeString myFrameType = m_FrameType; + OFCondition result = myFrameType.checkValue("4"); + if (result.good()) + { + OFString val; + myFrameType.getOFString(val, 0); + if (val == "DERIVED") + { + val.clear(); + myFrameType.getOFString(val, 1); + if (val == "PRIMARY") + { + val.clear(); + myFrameType.getOFString(val, 1); + return EC_Normal; + } + else + DCMFG_ERROR("Frame Type' 2nd value must be \"PRIMARY\" but is \"" << val << "\""); + } + else + DCMFG_ERROR("Frame Type 1st value must be \"DERIVED\" but is \"" << val << "\""); + } + return FG_EC_InvalidData; +} + + +OFCondition FGParametricMapFrameType::getFrameType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_FrameType, value, pos); +} + + +OFCondition FGParametricMapFrameType::setFrameType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "4") : EC_Normal; + if (result.good()) + result = m_FrameType.putString(value.c_str()); + return result; +} diff --git a/dcmfg/libsrc/fgpixmsr.cc b/dcmfg/libsrc/fgpixmsr.cc index 9fa1eec9..24bb4ddf 100644 --- a/dcmfg/libsrc/fgpixmsr.cc +++ b/dcmfg/libsrc/fgpixmsr.cc @@ -64,7 +64,7 @@ void FGPixelMeasures::clearData() OFCondition FGPixelMeasures::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanor.cc b/dcmfg/libsrc/fgplanor.cc index b46599d5..49265b57 100644 --- a/dcmfg/libsrc/fgplanor.cc +++ b/dcmfg/libsrc/fgplanor.cc @@ -42,7 +42,7 @@ void FGPlaneOrientationPatient::clearData() OFCondition FGPlaneOrientationPatient::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanorvol.cc b/dcmfg/libsrc/fgplanorvol.cc index d5c038f0..eccea15b 100644 --- a/dcmfg/libsrc/fgplanorvol.cc +++ b/dcmfg/libsrc/fgplanorvol.cc @@ -60,7 +60,7 @@ void FGPlaneOrientationVolume::clearData() OFCondition FGPlaneOrientationVolume::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanpo.cc b/dcmfg/libsrc/fgplanpo.cc index 6fce31fb..44fe2080 100644 --- a/dcmfg/libsrc/fgplanpo.cc +++ b/dcmfg/libsrc/fgplanpo.cc @@ -71,7 +71,7 @@ void FGPlanePosPatient::clearData() OFCondition FGPlanePosPatient::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanposvol.cc b/dcmfg/libsrc/fgplanposvol.cc index 00eaf464..4a88836a 100644 --- a/dcmfg/libsrc/fgplanposvol.cc +++ b/dcmfg/libsrc/fgplanposvol.cc @@ -58,7 +58,7 @@ void FGPlanePositionVolume::clearData() OFCondition FGPlanePositionVolume::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgrealworldvaluemapping.cc b/dcmfg/libsrc/fgrealworldvaluemapping.cc index a2e595aa..08ba72eb 100644 --- a/dcmfg/libsrc/fgrealworldvaluemapping.cc +++ b/dcmfg/libsrc/fgrealworldvaluemapping.cc @@ -64,7 +64,7 @@ void FGRealWorldValueMapping::clearData() OFCondition FGRealWorldValueMapping::check() const { - // TODO + // More checks checks for 1C conditions could be added return EC_Normal; } @@ -122,7 +122,8 @@ OFVector< FGRealWorldValueMapping::RWVMItem* >& FGRealWorldValueMapping::getReal FGRealWorldValueMapping::RWVMItem::RWVMItem(IODComponent* parent) : IODComponent(parent), - m_MeasurementUnitsCode() + m_MeasurementUnitsCode(), + m_QuantityDefinitionSequence() { resetRules(); } @@ -132,33 +133,43 @@ FGRealWorldValueMapping::RWVMItem::RWVMItem(OFshared_ptr< DcmItem > item, OFshared_ptr< IODRules > rules, IODComponent* parent) : IODComponent(item, rules, parent), - m_MeasurementUnitsCode() + m_MeasurementUnitsCode(), + m_QuantityDefinitionSequence() { resetRules(); } -FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone() +FGRealWorldValueMapping::RWVMItem::RWVMItem(const FGRealWorldValueMapping::RWVMItem& rhs) +: IODComponent(rhs) { - FGRealWorldValueMapping::RWVMItem* mapping = new FGRealWorldValueMapping::RWVMItem(*this); - if (mapping) + m_MeasurementUnitsCode = rhs.m_MeasurementUnitsCode; + OFVector::const_iterator it = rhs.m_QuantityDefinitionSequence.begin(); + while (it != rhs.m_QuantityDefinitionSequence.end()) { - // We do not have a copy constructor or clone function on IODComponent - OFString code, meaning, scheme, version; - m_MeasurementUnitsCode.getCodeValue(code); - m_MeasurementUnitsCode.getCodeMeaning(meaning); - m_MeasurementUnitsCode.getCodingSchemeDesignator(scheme); - m_MeasurementUnitsCode.getCodingSchemeVersion(version); - mapping->m_MeasurementUnitsCode.set(code, scheme, meaning, version, OFFalse /* do not check */); + ContentItemMacro* macro = new ContentItemMacro(**it); + if (macro == NULL) + { + DCMFG_ERROR("Out of memory in copy constructor of FGRealWorldValueMapping::RWVMItem::RWVMItem"); + return; + } + m_QuantityDefinitionSequence.push_back(macro); + it++; } - return mapping; +} + + + +FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone() +{ + return new FGRealWorldValueMapping::RWVMItem(*this); } FGRealWorldValueMapping::RWVMItem::~RWVMItem() { - // nothing to do + DcmIODUtil::freeContainer(m_QuantityDefinitionSequence); } @@ -173,24 +184,29 @@ int FGRealWorldValueMapping::RWVMItem::compare(const IODComponent& rhs) const return IODComponent::compare(rhs); } + void FGRealWorldValueMapping::RWVMItem::resetRules() { // parameters are tag, VM, type. Overwrite old rules if any. - m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1",getName(), DcmIODTypes::IE_INSTANCE), OFTrue); - m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_RealWorldValueIntercept, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_RealWorldValueSlope, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_RealWorldValueLUTData, "1-n","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_LUTExplanation, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_LUTLabel, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); - //m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1-n","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); } + OFCondition FGRealWorldValueMapping::RWVMItem::read(DcmItem& source, const OFBool clearOldData) { DcmIODUtil::readSingleItem(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, "1", m_ModuleName); + DcmIODUtil::readSubSequence(source, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, m_Rules->getByTag(DCM_QuantityDefinitionSequence)); return IODComponent::read(source, clearOldData); } @@ -199,6 +215,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::write(DcmItem& destination) { OFCondition result; DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, *m_Item, "1", m_ModuleName); + DcmIODUtil::writeSubSequence(result, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, *m_Item, m_Rules->getByTag(DCM_QuantityDefinitionSequence)); if (result.good()) result = IODComponent::write(destination); return result; } @@ -212,12 +229,26 @@ OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueFirstValueMapped OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLastValueMapped(Sint32& value, - const unsigned long pos) const + const unsigned long pos) const { return getUSorSS(*m_Item, DCM_RealWorldValueLastValueMapped, pos, value); } +OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueFirstValueMapped(Float64& value, + const unsigned long pos) const +{ + return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos); +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueLastValueMapped(Float64& value, + const unsigned long pos) const +{ + return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos); +} + + OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLUTData(OFVector< Float64 >& values) const { DcmElement* elem = NULL; @@ -263,7 +294,13 @@ CodeSequenceMacro& FGRealWorldValueMapping::RWVMItem::getMeasurementUnitsCode() } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16& value, +OFVector & FGRealWorldValueMapping::RWVMItem::getEntireQuantityDefinitionSequence() +{ + return m_QuantityDefinitionSequence; +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16 value, const OFBool checkValue) { (void)checkValue; @@ -299,7 +336,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedS } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16& value, +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16 value, const OFBool checkValue) { (void)checkValue; @@ -311,7 +348,23 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedU } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64& value, +OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value); +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueLastValueMapped, value); +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64 value, const OFBool checkValue) { (void)checkValue; @@ -319,7 +372,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64& value, +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64 value, const OFBool checkValue) { (void)checkValue; diff --git a/dcmfg/libsrc/fgseg.cc b/dcmfg/libsrc/fgseg.cc index 4e28d64b..72cfa404 100644 --- a/dcmfg/libsrc/fgseg.cc +++ b/dcmfg/libsrc/fgseg.cc @@ -57,7 +57,7 @@ void FGSegmentation::clearData() OFCondition FGSegmentation::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgtypes.cc b/dcmfg/libsrc/fgtypes.cc index eecd622a..fc5ca7c9 100644 --- a/dcmfg/libsrc/fgtypes.cc +++ b/dcmfg/libsrc/fgtypes.cc @@ -93,6 +93,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType) case EFG_IRRADIATIONEVENTIDENT: return "Irradiation Event Identification Functional Group Macro"; break; /// Radiopharmaceutical Usage case EFG_RADIOPHARAMAUSAGE: return "Radiopharmaceutical Usage Functional Group Macro"; break; + /// Parametric Map Frame Type + case EFG_PARAMETRICMAPFRAMETYPE: return "Parametric Map Frame Type Functional Group Macro"; break; /// Patient Physiological State case EFG_PATIENTPHYSIOSTATE: return "Patient Physiological State Functional Group Macro"; break; /// Plane Position (Volume) @@ -101,6 +103,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType) case EFG_PLANEORIENTVOLUME: return "Plane Orientation (Volume) Functional Group Macro"; break; /// Temporal Position Macro case EFG_TEMPORALPOSITION: return "Temporal Position Functional Group Macro"; break; + /// Identity Pixel Value Transformation + case EFG_IDENTITYPIXELVALUETRANSFORMATION: return "Identity Pixel Value Transformation"; break; /// Image Data Type case EFG_IMAGEDATATYPE: return "Image Data Type Functional Group Macro"; break; /// Unassigned Shared Converted Attributes Macro @@ -116,7 +120,7 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType) DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key) { - // TODO: Use neat value to enum trick from Alexandrescu in order to have switch statement instead? + // Note: Use neat value to enum trick from Alexandrescu in order to have switch statement instead? if (key == DCM_PixelMeasuresSequence) return EFG_PIXELMEASURES; else if (key == DCM_FrameContentSequence) @@ -155,12 +159,16 @@ DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key) return EFG_RADIOPHARAMAUSAGE; else if (key == DCM_PatientPhysiologicalStateSequence) return EFG_PATIENTPHYSIOSTATE; + else if (key == DCM_ParametricMapFrameTypeSequence) + return EFG_PARAMETRICMAPFRAMETYPE; else if (key == DCM_PlanePositionVolumeSequence) return EFG_PLANEPOSITIONVOLUME; else if (key == DCM_PlaneOrientationVolumeSequence) return EFG_PLANEORIENTVOLUME; else if (key == DCM_TemporalPositionSequence) return EFG_TEMPORALPOSITION; + else if (key == DCM_PixelValueTransformationSequence) + return EFG_IDENTITYPIXELVALUETRANSFORMATION; else if (key == DCM_ImageDataTypeSequence) return EFG_IMAGEDATATYPE; else if (key == DCM_UnassignedSharedConvertedAttributesSequence) diff --git a/dcmfg/libsrc/fgusimagedescription.cc b/dcmfg/libsrc/fgusimagedescription.cc index e5ffa4e6..439e3395 100644 --- a/dcmfg/libsrc/fgusimagedescription.cc +++ b/dcmfg/libsrc/fgusimagedescription.cc @@ -64,7 +64,7 @@ void FGUSImageDescription::clearData() OFCondition FGUSImageDescription::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmimage/apps/Makefile.in b/dcmimage/apps/Makefile.in index 36e35b11..4e9bb1d4 100644 --- a/dcmimage/apps/Makefile.in +++ b/dcmimage/apps/Makefile.in @@ -22,7 +22,7 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include \ LIBDIRS = -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc \ -L$(dcmdatadir)/libsrc -L$(dcmimgledir)/libsrc LOCALLIBS = -ldcmimage -ldcmimgle -ldcmdata -loflog -lofstd $(TIFFLIBS) $(PNGLIBS) \ - $(ZLIBLIBS) $(ICONVLIBS) + $(ZLIBLIBS) $(CHARCONVLIBS) objs = dcm2pnm.o dcmquant.o dcmscale.o progs = dcm2pnm dcmquant dcmscale diff --git a/dcmimage/apps/dcm2pnm.cc b/dcmimage/apps/dcm2pnm.cc index 96d0a750..454497cb 100644 --- a/dcmimage/apps/dcm2pnm.cc +++ b/dcmimage/apps/dcm2pnm.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2014, OFFIS e.V. + * Copyright (C) 1996-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -327,9 +327,9 @@ int main(int argc, char *argv[]) "ambient light value (cd/m^2, default: file f)"); cmd.addOption("--illumination", "+Di", 1, "[i]llumination: float", "illumination value (cd/m^2, default: file f)"); - cmd.addOption("--min-density", "+Dn", 1, "[m]inimum optical density: float", + cmd.addOption("--min-density", "+Dn", 1, "[m]inimum optical density: float", "Dmin value (default: off, only with +Dp)"); - cmd.addOption("--max-density", "+Dx", 1, "[m]aximum optical density: float", + cmd.addOption("--max-density", "+Dx", 1, "[m]aximum optical density: float", "Dmax value (default: off, only with +Dp)"); cmd.addOption("--gsd-function", "+Dg", "use GSDF for calibration (default for +Dm/+Dp)"); cmd.addOption("--cielab-function", "+Dc", "use CIELAB function for calibration "); @@ -736,14 +736,14 @@ int main(int argc, char *argv[]) { do { unsigned long l; - app.checkValue(cmd.getValueAndCheckMinMax(l, 1, 16)); + app.checkValue(cmd.getValueAndCheckMinMax(l, 0, 16)); if (!opt_O_used) { for (i = 0; i < 16; i++) opt_Overlay[i] = 0; opt_O_used = 1; } if (l > 0) - opt_Overlay[l - 1]=1; + opt_Overlay[l - 1] = 1; else { for (i = 0; i < 16; i++) diff --git a/dcmimage/include/dcmtk/dcmimage/dicoimg.h b/dcmimage/include/dcmtk/dcmimage/dicoimg.h index 16638c7c..c38942e5 100644 --- a/dcmimage/include/dcmtk/dcmimage/dicoimg.h +++ b/dcmimage/include/dcmtk/dcmimage/dicoimg.h @@ -397,6 +397,8 @@ class DCMTK_DCMIMAGE_EXPORT DiColorImage /** check intermediate pixel representation for consistency * ** @param mode check number of pixels stored in the dataset if true + * + ** @return status, true if successful, false otherwise */ int checkInterData(const int mode = 1); diff --git a/dcmimgle/apps/Makefile.in b/dcmimgle/apps/Makefile.in index 315fb2f3..61669cb9 100644 --- a/dcmimgle/apps/Makefile.in +++ b/dcmimgle/apps/Makefile.in @@ -18,7 +18,7 @@ dcmdatadir = $(top_srcdir)/../dcmdata LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/include LIBDIRS = -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc -L$(dcmdatadir)/libsrc -LOCALLIBS = -ldcmimgle -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(ICONVLIBS) +LOCALLIBS = -ldcmimgle -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(CHARCONVLIBS) objs = dconvlum.o dcmdspfn.o dcod2lum.o progs = dconvlum dcmdspfn dcod2lum diff --git a/dcmimgle/include/dcmtk/dcmimgle/dcmimage.h b/dcmimgle/include/dcmtk/dcmimgle/dcmimage.h index 82b6572d..6f776963 100644 --- a/dcmimgle/include/dcmtk/dcmimgle/dcmimage.h +++ b/dcmimgle/include/dcmtk/dcmimgle/dcmimage.h @@ -504,6 +504,8 @@ class DCMTK_DCMIMGLE_EXPORT DicomImage } /** check whether image has given SOP class UID. + * + ** @param uid SOP class UID to be checked * ** @return true if image has given SOP class UID, false otherwise */ diff --git a/dcmimgle/include/dcmtk/dcmimgle/diimage.h b/dcmimgle/include/dcmtk/dcmimgle/diimage.h index 50fb32bc..72a7adbb 100644 --- a/dcmimgle/include/dcmtk/dcmimgle/diimage.h +++ b/dcmimgle/include/dcmtk/dcmimgle/diimage.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2014, OFFIS e.V. + * Copyright (C) 1996-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -605,6 +605,8 @@ class DCMTK_DCMIMGLE_EXPORT DiImage /** detach pixel data. * removes storage area used for the pixel data from memory + * + ** @return status, true if successful, false otherwise */ int detachPixelData(); diff --git a/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h b/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h index 919c210a..6f30bc91 100644 --- a/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h +++ b/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h @@ -184,9 +184,10 @@ class DiInputPixelTemplate DCMIMGLE_DEBUG("determining minimum and maximum pixel values for input data"); T2 *p = Data; unsigned long i; - const unsigned long ocnt = OFstatic_cast(unsigned long, getAbsMaxRange()); + const double absrange = getAbsMaxRange(); + const unsigned long ocnt = (absrange <= 10000000.0) ? OFstatic_cast(unsigned long, absrange) : 0 /* no LUT */; Uint8 *lut = NULL; - if ((sizeof(T2) <= 2) && (Count > 3 * ocnt)) // optimization criteria + if ((sizeof(T2) <= 2) && (ocnt > 0) && (Count > 3 * ocnt)) // optimization criteria { lut = new Uint8[ocnt]; if (lut != NULL) diff --git a/dcmimgle/include/dcmtk/dcmimgle/dimoimg.h b/dcmimgle/include/dcmtk/dcmimgle/dimoimg.h index ef7fe32a..3077f374 100644 --- a/dcmimgle/include/dcmtk/dcmimgle/dimoimg.h +++ b/dcmimgle/include/dcmtk/dcmimgle/dimoimg.h @@ -942,6 +942,8 @@ class DCMTK_DCMIMGLE_EXPORT DiMonoImage /** check intermediate pixel representation for consistency * ** @param mode check number of pixels stored in the dataset if true + * + ** @return status, true if successful, false otherwise */ int checkInterData(const int mode = 1); diff --git a/dcmimgle/include/dcmtk/dcmimgle/dimomod.h b/dcmimgle/include/dcmtk/dcmimgle/dimomod.h index a4dbcb2c..4412d78a 100644 --- a/dcmimgle/include/dcmtk/dcmimgle/dimomod.h +++ b/dcmimgle/include/dcmtk/dcmimgle/dimomod.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2011, OFFIS e.V. + * Copyright (C) 1996-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -219,6 +219,8 @@ class DCMTK_DCMIMGLE_EXPORT DiMonoModality * ** @param docu pointer to dataset (encapsulated) * @param pixel pointer to input pixel data + * + ** @return status, true if successful, false otherwise */ int Init(const DiDocument *docu, DiInputPixel *pixel); diff --git a/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h b/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h index ba3e71e5..c13295c0 100644 --- a/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h +++ b/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h @@ -248,6 +248,19 @@ class DiMonoOutputPixelTemplate } } + /** determine number of entries for the optimization LUT + * + ** @param count number of entries intended to be used for the optimization LUT + * (floating point value) + * + ** @return number of entries for the optimization LUT (unsigned integer value) + * or 0 if the size would exceed a certain limit (10,000,000 entries) + */ + inline unsigned long determineOptimizationCount(const double count) + { + return (count <= 10000000.0) ? OFstatic_cast(unsigned long, count) : 0 /* no LUT */; + } + private: @@ -277,13 +290,15 @@ class DiMonoOutputPixelTemplate /** initialize an optimization LUT if the optimization criteria is fulfilled * ** @param lut reference to storage area where the optimization LUT should be stored - * @param ocnt number of entries for the optimization LUT + * @param ocnt number of entries for the optimization LUT (0 = never create one) + * + ** @return status, true if successful, false otherwise */ inline int initOptimizationLUT(T3 *&lut, const unsigned long ocnt) { int result = 0; - if ((sizeof(T1) <= 2) && (Count > 3 * ocnt)) // optimization criteria + if ((sizeof(T1) <= 2) && (ocnt > 0) && (Count > 3 * ocnt)) // optimization criteria { // use LUT for optimization lut = new T3[ocnt]; if (lut != NULL) @@ -348,7 +363,7 @@ class DiMonoOutputPixelTemplate if (dlut != NULL) // perform display transformation { DCMIMGLE_TRACE("monochrome rendering: VOI LUT #1 - UNTESTED"); - if (low > high) // invers + if (low > high) // inverse value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getAbsMaxRange() - plut->getValue(value2) - 1))); else // normal value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getValue(value2)))); @@ -361,7 +376,7 @@ class DiMonoOutputPixelTemplate if (dlut != NULL) // perform display transformation { DCMIMGLE_TRACE("monochrome rendering: VOI LUT #3 - UNTESTED"); - if (low > high) // invers + if (low > high) // inverse value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, vlut->getAbsMaxRange() - minvalue - 1))); else // normal value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, minvalue))); @@ -376,7 +391,7 @@ class DiMonoOutputPixelTemplate const T2 absmin = OFstatic_cast(T2, inter->getAbsMinimum()); const T2 firstentry = vlut->getFirstEntry(value); // choose signed/unsigned method const T2 lastentry = vlut->getLastEntry(value); - const unsigned long ocnt = OFstatic_cast(unsigned long, inter->getAbsMaxRange()); // number of LUT entries + const unsigned long ocnt = determineOptimizationCount(inter->getAbsMaxRange()); // number of LUT entries const T1 *p = pixel + start; T3 *q = Data; T3 *lut = NULL; @@ -621,8 +636,8 @@ class DiMonoOutputPixelTemplate DCMIMGLE_DEBUG("applying no VOI transformation (linear scaling)"); const double absmin = inter->getAbsMinimum(); const double absmax = inter->getAbsMaximum(); - const double outrange = OFstatic_cast(double, high) - OFstatic_cast(double, low) + 1; - const unsigned long ocnt = OFstatic_cast(unsigned long, inter->getAbsMaxRange()); // number of LUT entries + const double outrange = OFstatic_cast(double, high) - OFstatic_cast(double, low) + 1; // output range + const unsigned long ocnt = determineOptimizationCount(inter->getAbsMaxRange()); // number of LUT entries DCMIMGLE_TRACE("intermediate pixel data - absmin: " << absmin << ", absmax: " << absmax); const T1 *p = pixel + start; T3 *q = Data; @@ -784,7 +799,7 @@ class DiMonoOutputPixelTemplate const DiDisplayLUT *dlut = NULL; const double absmin = inter->getAbsMinimum(); const double outrange = OFstatic_cast(double, high) - OFstatic_cast(double, low); // output range - const unsigned long ocnt = OFstatic_cast(unsigned long, inter->getAbsMaxRange()); // number of LUT entries + const unsigned long ocnt = determineOptimizationCount(inter->getAbsMaxRange()); // number of LUT entries const T1 *p = pixel + start; T3 *q = Data; unsigned long i; @@ -946,7 +961,7 @@ class DiMonoOutputPixelTemplate const double leftBorder = center - 0.5 - width_1 / 2; // window borders, according to supplement 33 const double rightBorder = center - 0.5 + width_1 / 2; const double outrange = OFstatic_cast(double, high) - OFstatic_cast(double, low); // output range - const unsigned long ocnt = OFstatic_cast(unsigned long, inter->getAbsMaxRange()); // number of LUT entries + const unsigned long ocnt = determineOptimizationCount(inter->getAbsMaxRange()); // number of LUT entries const T1 *p = pixel + start; T3 *q = Data; unsigned long i; diff --git a/dcmimgle/libsrc/dimoimg.cc b/dcmimgle/libsrc/dimoimg.cc index bfb8e1fe..0db68be5 100644 --- a/dcmimgle/libsrc/dimoimg.cc +++ b/dcmimgle/libsrc/dimoimg.cc @@ -1901,7 +1901,7 @@ DiImage *DiMonoImage::createOutputImage(const unsigned long frame, if ((OutputData != NULL) && (OutputData->getData() != NULL)) { - DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OutputData->getItemSize() * 8); + DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OFstatic_cast(int, OutputData->getItemSize() * 8)); if (image != NULL) OutputData->removeDataReference(); // output data is now handled by new mono image return image; diff --git a/dcmiod/include/dcmtk/dcmiod/cielabutil.h b/dcmiod/include/dcmtk/dcmiod/cielabutil.h index 781477b5..64cd3ff8 100755 --- a/dcmiod/include/dcmtk/dcmiod/cielabutil.h +++ b/dcmiod/include/dcmtk/dcmiod/cielabutil.h @@ -195,7 +195,7 @@ protected: * @param b Second number * @return The minimum of a, b. a if a and b are equal. */ - static double min(double a, double b); + static double min2(double a, double b); /** Get the minimum of three numbers * @param a First number diff --git a/dcmiod/include/dcmtk/dcmiod/iodcommn.h b/dcmiod/include/dcmtk/dcmiod/iodcommn.h index d4cd8721..0e3dc975 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodcommn.h +++ b/dcmiod/include/dcmtk/dcmiod/iodcommn.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -48,6 +48,11 @@ public: */ DcmIODCommon(); + /** Copy Constructor + * @param rhs The object to copy from + */ + DcmIODCommon(const DcmIODCommon& rhs); + /** Get rules handled by this IOD * @return The rules */ @@ -141,6 +146,8 @@ public: /** Make sure that the IOD contains a SOP Instance, Series Instance and Study * Instance UID. They are created if empty. Invalid UIDs are corrected if * desired. + * @param correctInvalid If OFTrue, invalid instance UIDs will be replaced + * by new ones */ virtual void ensureInstanceUIDs(const OFBool correctInvalid = OFFalse); @@ -177,6 +184,46 @@ public: OFBool readFoR = OFFalse, OFBool readSeries = OFFalse); + /** Import common module attributes from DICOM file but only read Patient, Study, + * Series and/or Frame of Reference level portions. The current content + * is not deleted before reading. If the log stream is set and valid the + * reason for any error might be obtained from the error/warning output. + * This function is deprecated and might be removed in later versions of + * DCMTK. Use the import() call offering the same parameters and + * functionality, instead. + * @param filename The filename to read from. + * @param usePatient If OFTrue, Patient level information is imported + * @param useStudy If OFTrue, Study level information is imported + * @param useSeries If OFTrue, Series level information is imported + * @param useFoR If OFTrue, Frame of Reference information is imported + * @return EC_Normal if reading was successful (i.e.\ if any information could + * be read), otherwise an error is returned + */ + OFCondition importPatientStudyFoR(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR = OFFalse); + + /** Import common module attributes from DICOM file but only read Patient, Study, + * Series and/or Frame of Reference level portions. The current content + * is not deleted before reading. If the log stream is set and valid the + * reason for any error might be obtained from the error/warning output. + * @param filename The filename to read from + * @param usePatient If OFTrue, Patient level information is imported + * @param useStudy If OFTrue, Study level information is imported + * @param useSeries If OFTrue, Series level information is imported + * @param useFoR If OFTrue, Frame of Reference information is imported + * @return EC_Normal if reading was successful (i.e.\ if any information could + * be read), otherwise an error is returned + */ + virtual OFCondition import(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR = OFFalse); + + /** Write the attributes managed by this class to DICOM dataset. * @param dataset Reference to DICOM dataset to which the current document * should be written. The dataset is not cleared @@ -188,6 +235,10 @@ public: private: + /** Copy assignment disabled + */ + DcmIODCommon& operator=(const DcmIODCommon&); + /// The data hold by this class (shared with modules below) OFshared_ptr m_Item; diff --git a/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h b/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h new file mode 100644 index 00000000..8646e96f --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h @@ -0,0 +1,478 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Content Item Macro + * + */ + +#ifndef IODCONTENTITEMMACRO_H +#define IODCONTENTITEMMACRO_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofmem.h" +#include "dcmtk/dcmiod/iodrules.h" +#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmiod/iodtypes.h" + +/** Class representing the Content Item Macro: + * + * ValueType: (CS, 1, 1) + * ConceptNameCodeSequence: (SQ, 1, 1) + * DateTime: (DT, 1, 1C) + * Date: (DA, 1, 1C) + * Time: (TM, 1, 1C) + * PersonName: (PN, 1, 1C) + * UID: (UI, 1, 1C) + * TextValue: (UT, 1, 1C) + * ConceptCodeSequence: (SQ, 1, 1C) + * NumericValue: (DS, 1-n, 1C) + * FloatingPointValue: (FD, 1-n, 1C) + * RationalNumeratorValue: (SL, 1-n, 1C) + * RationalDenominatorValue: (UL, 1-n, 1C) + * MeasurementUnitsCodeSequence: (SQ, 1, 1C) + * ReferencedSOPSequence: (SQ, 1, 1C) + */ +class DCMTK_DCMIOD_EXPORT ContentItemMacro : public IODComponent +{ +public: + + enum ValueType + { + // Value is empty and not provided + VT_EMPTY, + // Value is provided but not known to the implementation + VT_UNKNOWN, + VT_DATE, + VT_TIME, + VT_DATETIME, + VT_PNAME, + VT_UIDREF, + VT_TEXT, + VT_CODE, + VT_NUMERIC, + VT_COMPOSITE, + VT_IMAGE + }; + + /** Class representing an item within the Content Item Macro's Referenced + * SOP Sequence + */ + class DCMTK_DCMIOD_EXPORT ReferencedSOPSequenceItem : public IODComponent + { + public: + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + * @param parent The parent of the IOD component (NULL if none or unknown) + */ + ReferencedSOPSequenceItem(OFshared_ptr item, + OFshared_ptr rules, + IODComponent* parent = NULL); + + /** Constructor + * @param parent The parent of the IOD component (NULL if none or unknown) + */ + ReferencedSOPSequenceItem(IODComponent* parent = NULL); + + /** Copy Constructor, performs deep copy + * @param rhs The parent of the IOD component (NULL if none or unknown) + */ + ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs); + + /** Virtual Destructor + */ + virtual ~ReferencedSOPSequenceItem(); + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of macro + * @return Name of the component ("ReferencedSOPSequenceItem") + */ + virtual OFString getName() const; + + /** Get SOPInstanceReferenceMacro + * @return a reference to the included SOPInstanceReferenceMacro + */ + virtual SOPInstanceReferenceMacro& getSOPInstanceReferenceMacro(); + + /** Get ReferencedFrameNumber + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getReferencedFrameNumber(OFString &value, + const signed long pos = 0) const; + + /** Get ReferencedSegmentNumber + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getReferencedSegmentNumber(Uint16 &value, + const signed long pos = 0) const; + + /** Set ReferencedFrameNumber + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (IS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setReferencedFrameNumber(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set ReferencedSegmentNumber + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setReferencedSegmentNumber(const Uint16 value, + const OFBool checkValue = OFTrue); + + protected: + + /// The name of this item ("ReferencedSOPSequenceItem") + static const OFString m_ComponentName; + + /// SOP Instance Reference Macro + SOPInstanceReferenceMacro m_SOPInstanceReferenceMacro; + }; + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + ContentItemMacro(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + ContentItemMacro(); + + /** Destructor + */ + virtual ~ContentItemMacro(); + + ContentItemMacro(const ContentItemMacro& rhs); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module ("ContentItemMacro") + * @return Name of the module ("ContentItemMacro") + */ + virtual OFString getName() const; + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Get ValueType + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getValueType(OFString &value, + const signed long pos = 0) const; + + /** Get ValueType + * @param value Reference to variable in which the value should be stored + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getValueType(ValueType &value) const; + + /** Get reference to the ConceptNameCodeSequence + * @return a reference to the ConceptNameCodeSequence + */ + virtual CodeSequenceMacro* getConceptNameCodeSequence(); + + /** Get a reference to the entire ConceptNameCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ConceptNameCodeSequence + */ + virtual OFVector& getEntireConceptNameCodeSequence(); + + /** Get DateTime + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDateTime(OFString &value, + const signed long pos = 0) const; + + /** Get Date + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDate(OFString &value, + const signed long pos = 0) const; + + /** Get Time + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getTime(OFString &value, + const signed long pos = 0) const; + + /** Get PersonName + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPersonName(OFString &value, + const signed long pos = 0) const; + + /** Get UID + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getUID(OFString &value, + const signed long pos = 0) const; + + /** Get TextValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getTextValue(OFString &value, + const signed long pos = 0) const; + + /** Get reference to the ConceptCodeSequence + * @return a reference to the ConceptCodeSequence + */ + virtual CodeSequenceMacro* getConceptCodeSequence(); + + /** Get a reference to the entire ConceptCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ConceptCodeSequence + */ + virtual OFVector& getEntireConceptCodeSequence(); + + /** Get NumericValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getNumericValue(OFString &value, + const signed long pos = 0) const; + + /** Get FloatingPointValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFloatingPointValue(Float64 &value, + const signed long pos = 0) const; + + /** Get RationalNumeratorValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRationalNumeratorValue(Sint32 &value, + const signed long pos = 0) const; + + /** Get RationalDenominatorValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRationalDenominatorValue(Uint32 &value, + const signed long pos = 0) const; + + /** Get reference to the MeasurementUnitsCodeSequence + * @return a reference to the MeasurementUnitsCodeSequence + */ + virtual CodeSequenceMacro* getMeasurementUnitsCodeSequence(); + + /** Get a reference to the entire MeasurementUnitsCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire MeasurementUnitsCodeSequence + */ + virtual OFVector& getEntireMeasurementUnitsCodeSequence(); + + /** Get reference to the ReferencedSOPSequence + * @return a reference to the ReferencedSOPSequence + */ + virtual ReferencedSOPSequenceItem* getReferencedSOPSequence(); + + /** Get a reference to the entire ReferencedSOPSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ReferencedSOPSequence + */ + virtual OFVector& getEntireReferencedSOPSequence(); + + /** Set ValueType + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setValueType(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set ValueType + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value'. Does nothing, here for consistency with + * other set() functions. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setValueType(const ValueType value, + const OFBool checkValue = OFTrue); + + /** Set DateTime + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDateTime(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Date + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDate(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Time + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (TM) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setTime(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set PersonName + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (PN) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPersonName(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set UID + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setUID(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set TextValue + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setTextValue(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set NumericValue + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setNumericValue(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set FloatingPointValue + * @param value Value to be set (single value only) or "" for no value + * @param pos Index of the value to be set (starting from 0) + * @param checkValue Check 'value' for conformance with VR (FD) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFloatingPointValue(const Float64 value, + const unsigned long pos = 0, + const OFBool checkValue = OFTrue); + + /** Set RationalNumeratorValue + * @param value Value to be set (single value only) or "" for no value + * @param pos Index of the value to be set (starting from 0) + * @param checkValue Check 'value' for conformance with VR (SL) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRationalNumeratorValue(const Sint32 value, + const unsigned long pos = 0, + const OFBool checkValue = OFTrue); + + /** Set RationalDenominatorValue + * @param value Value to be set (single value only) or "" for no value + * @param pos Index of the value to be set (starting from 0) + * @param checkValue Check 'value' for conformance with VR (UL) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRationalDenominatorValue(const Uint32 value, + const unsigned long pos = 0, + const OFBool checkValue = OFTrue); + + virtual OFString toString(); + +protected: + + /// The name of this module ("ContentItemMacro") + static const OFString m_ModuleName; + + /// ConceptNameCodeSequence + OFVector m_ConceptNameCodeSequence; + + /// ConceptCodeSequence + OFVector m_ConceptCodeSequence; + + /// MeasurementUnitsCodeSequence + OFVector m_MeasurementUnitsCodeSequence; + + /// ReferencedSOPSequence + OFVector m_ReferencedSOPSequence; +}; + +#endif // IODCONTENTITEMMACRO_H diff --git a/dcmiod/include/dcmtk/dcmiod/iodimage.h b/dcmiod/include/dcmtk/dcmiod/iodimage.h index 6b0ac4e7..7760c4b8 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodimage.h +++ b/dcmiod/include/dcmtk/dcmiod/iodimage.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -23,44 +23,117 @@ #define IODIMAGE_H #include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofutil.h" +#include "dcmtk/ofstd/ofvriant.h" #include "dcmtk/dcmiod/iodcommn.h" #include "dcmtk/dcmiod/modgeneralimage.h" -#include "dcmtk/dcmiod/modimagepixel.h" +#include "dcmtk/dcmiod/modimagepixelvariant.h" + +class IODDoubleFloatingPointImagePixelModule; +class IODFloatingPointImagePixelModule; +template +class IODImagePixelModule; /** Class for managing common image IOD attributes. At the moment support for * the palette-related attributes and the smallest/largest image pixel value * attributes is still missing. Also, pixel data must be handled separately. + * However, pixel-data related attributes are provided by the Image Pixel + * Module, the Floating Point Image Pixel Module or the Double Floating Point + * Image Pixel Module, based on the provided template parameter. * Modules supported on top of DcmIODCommon: General Image Module and * Image Pixel Module. */ -class DCMTK_DCMIOD_EXPORT DcmIODImage : - public DcmIODCommon +#ifdef DCMTK_USE_CXX11_STL +template +struct DcmIODImageHasType +: std::false_type {}; + +template +struct DcmIODImageHasType +: std::true_type {}; + +template +struct DcmIODImageHasType +: DcmIODImageHasType::type {}; + +template +#else +template +#endif +class DcmIODImage : public DcmIODCommon { public: - /** Constructor + /** typedef for old compilers that do not define the type 'DcmIODImage' in + * derived classes. */ - DcmIODImage(); + typedef DcmIODImage IODImage; - /** Get General Image Module - * @return Reference to General Image Module + /** A good comment would be nice, but I have nothing in mind */ - IODGeneralImageModule& getGeneralImage(); +#ifdef DCMTK_USE_CXX11_STL + using IODImagePixelModuleType = IODImagePixelVariant; +#else + typedef IODImagePixelVariant IODImagePixelModuleType; +#endif - /** Get Image Pixel Module - * @return Reference to Image Pixel Module + /** Constructor, creates new DcmIODImage instance with integer-based pixel data. */ - IODImagePixelModule& getImagePixel(); + DcmIODImage() + : DcmIODCommon() + , m_GeneralImage(getData(), getRules()) + , m_ImagePixel() + { + + } + + /** Constructor, constructs new DcmIODImage instance with integer, float or + * double based Image Pixel Module (i. e. Image Pixel Module, Floating Point + * Image Pixel Module or the Double Floating Point Image Pixel Module), based + * on the provided Image Pixel module type. + */ + template + DcmIODImage(OFin_place_type_t(ImagePixel)) + : DcmIODCommon() + , m_GeneralImage(getData(), getRules()) + , m_ImagePixel(ImagePixel(getData(), getRules())) + { + + } /** Virtual Destructor */ - virtual ~DcmIODImage(); + virtual ~DcmIODImage() + { + + } + + /** Get General Image Module + * @return Reference to General Image Module + */ + IODGeneralImageModule& getGeneralImage() + { + return m_GeneralImage; + } + + /** Get Image Pixel Module (variant) + * @return Reference to Image Pixel Module + */ + IODImagePixelModuleType& getImagePixel() + { + return m_ImagePixel; + } /** Clear (removes) all attributes handled by the modules of this IOD. * IOD Rules are not reset. */ - virtual void clearData(); + virtual void clearData() + { + DcmIODCommon::clearData(); + m_GeneralImage.clearData(); + m_ImagePixel.clearData(); + } /** Read common image module attributes (all those handled by this class) * from given item. Reads attributes from base class DcmIODCommon before. @@ -71,25 +144,169 @@ public: * should be read * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition read(DcmItem &dataset); + virtual OFCondition read(DcmItem &dataset) + { + // re-initialize object + clearData(); + + // read from base classes + DcmIODCommon::read(dataset); + m_GeneralImage.read(dataset, OFTrue /* clear old data */); + + return readFloatingPointDoubleImagePixel(dataset); + } /** Write current common image module's attributes to DICOM dataset. Also * writes attributes of base class DcmIODCommon afterwards. - * @param dataset Reference to DICOM dataset to which the current document - * should be written. The dataset is not cleared before writing + * @param dataset Reference to DICOM dataset to which the current data + * should be written. The dataset is not cleared before writing * to it! * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition write(DcmItem &dataset); + virtual OFCondition write(DcmItem &dataset) + { + OFCondition result = EC_Normal; + + // Write base class attributes to dataset + result = DcmIODCommon::write(dataset); + + // Write extra modules to dataset + if (result.good()) + result = m_GeneralImage.write(dataset); + if (result.good()) + result = m_ImagePixel.write(dataset); + + return result; + } private: + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value != -1), + OFCondition + >::type +#endif + readFloatingPointDoubleImagePixel(DcmItem& dataset) + { + if (dataset.tagExists(DCM_DoubleFloatPixelData)) + return OFget(&(m_ImagePixel = T(getData(),getRules())))->read(dataset); + return readFloatingPointImagePixel(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value == -1), + OFCondition + >::type +#endif + readFloatingPointDoubleImagePixel(DcmItem& dataset) + { + return readFloatingPointImagePixel(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value != -1), + OFCondition + >::type +#endif + readFloatingPointImagePixel(DcmItem& dataset) + { + if (dataset.tagExists(DCM_FloatPixelData)) + return OFget(&(m_ImagePixel = T(getData(),getRules())))->read(dataset); + return readIntegerImagePixel(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value == -1), + OFCondition + >::type +#endif + readFloatingPointImagePixel(DcmItem& dataset) + { + return readIntegerImagePixel(dataset); + } + + OFCondition readIntegerImagePixel(DcmItem& dataset) + { + Uint16 allocated, representation; + if + ( + dataset.tagExists(DCM_PixelData) && + dataset.findAndGetUint16(DCM_BitsAllocated, allocated).good() && + dataset.findAndGetUint16(DCM_PixelRepresentation, representation).good() + ) + switch ((allocated > 8 ? 2 : 0) | (representation ? 1 : 0)) + { + case 0: + return readImagePixel(dataset); + case 1: + return readImagePixel(dataset); + case 2: + return readImagePixel(dataset); + case 3: + return readImagePixel(dataset); + default: + break; + } + return IOD_EC_InvalidPixelData; + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1), + OFCondition + >::type +#endif + readImagePixel(DcmItem& dataset) + { + return OFget >(&(m_ImagePixel = IODImagePixelModule(getData(),getRules())))->read(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1), + OFCondition + >::type +#endif + readImagePixel(DcmItem& dataset) + { + // Avoid compiler warning about unused parameter + OFstatic_cast(void, dataset); + return IOD_EC_InvalidPixelData; + } + /// General Image Module IODGeneralImageModule m_GeneralImage; /// Image Pixel Module - IODImagePixelModule m_ImagePixel; - + IODImagePixelModuleType m_ImagePixel; }; #endif // IODIMAGE_H diff --git a/dcmiod/include/dcmtk/dcmiod/iodmacro.h b/dcmiod/include/dcmtk/dcmiod/iodmacro.h index 709c23df..4430c2cd 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodmacro.h +++ b/dcmiod/include/dcmtk/dcmiod/iodmacro.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -57,7 +57,6 @@ public: */ CodeSequenceMacro(const CodeSequenceMacro& rhs); - /** Convenience constructor to set initial values * @param item The item to be used for data storage. If NULL, the * class creates an empty data container. @@ -136,6 +135,14 @@ public: */ virtual OFCondition getCodeMeaning(OFString &value, const signed long pos = 0); + + /** Returns whether code is empty, i.e. no component of the Code Sequence Macro + * is set. This can be used in order to find out whether someone actually + * wanted to fill in a valid code as opposed of leaving it unset. + * @return OFTrue if no component of this class is set, OFFalse otherwise. + */ + virtual OFBool empty(); + /** Set Code Value * @param value The value to set * @param checkValue If OFTrue, VM and VR of value are checked @@ -183,6 +190,8 @@ public: const OFString &schemeVersion = "", const OFBool checkValue = OFTrue); + virtual OFString toString(); + }; @@ -211,13 +220,13 @@ public: /** Constructor * @param modifierType Denotes type of Modifier Code Sequence (i.e. 1, 1C, - * 2, 2C or 3), default is 3 + * 2, 2C or 3) * @param modifierVM Denotes how many items are allowed in the Modifier Code * Sequence * @param modifierSeq Tag of the sequence that holds the modifier codes. * The default is the Modifier Code Sequence. */ - CodeWithModifiers(const OFString& modifierType = "3", + CodeWithModifiers(const OFString& modifierType, const OFString& modifierVM = "1-n", const DcmTagKey& modifierSeq = DCM_ModifierCodeSequence); @@ -228,6 +237,7 @@ public: /** Assignment operator, performs deep copy. * @param rhs The component to be assigned from + * @return Reference to this object */ CodeWithModifiers& operator=(const CodeWithModifiers& rhs); @@ -302,6 +312,9 @@ public: private: + /// Private undefined default constructor + CodeWithModifiers(); + /// Items of Modifier Code Sequence OFVector m_Modifiers; @@ -316,6 +329,7 @@ private: }; + /** Class implementing the SOP Instance Reference Macro */ class DCMTK_DCMIOD_EXPORT SOPInstanceReferenceMacro : public IODComponent @@ -501,6 +515,7 @@ public: /** Read Referenced Series Sequence item data from given item * @param source The item to read from * @param clearOldData If OFTrue, old data is cleared before reading + * @return EC_Normal if data could be read successfully, error otherwise */ virtual OFCondition read(DcmItem& source, const OFBool clearOldData = OFTrue); @@ -555,8 +570,6 @@ private: /** Class representing the Image SOP Instance Reference Macro - * TODO: Change implementation to use IODComponent class inherited anyway - * from SOPInstanceReferenceMacro */ class DCMTK_DCMIOD_EXPORT ImageSOPInstanceReferenceMacro : public SOPInstanceReferenceMacro { @@ -690,146 +703,9 @@ private: }; -/** Class representing an item within the the Primary Anatomic Structure Macro - */ -class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacroItem -{ - -public: - - /** Constructor - */ - PrimaryAnatomicStructureMacroItem(); - - /** Copy constructor - * @param rhs The item to copy from - */ - PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs); - - /** Virtual destructor - */ - virtual ~PrimaryAnatomicStructureMacroItem(); - - /** Clear (removes) all attributes handled by the modules of this component. - */ - virtual void clearData(); - - /** Check whether this component's data satisfies the underlying - * rules - * @param quiet If OFTrue, not error / warning messages will be produced. - * Only the returned error code will indicate error or OK. Per - * default, logging output is produced. - * @result EC_Normal if rules are satisfied, error otherwise - */ - virtual OFCondition check(const OFBool quiet = OFFalse); - - /** Return the Anatomic Structure Code - * @return Reference to the anatomic structure code - */ - virtual CodeSequenceMacro& getAnatomicStructure(); - - /** Return the Anatomic Structure Modifier Codes - * @return The Anatomic Structure Modifier Codes - */ - virtual OFVector& getAnatomicStructureModifier(); - - /** Reads Primary Anatomic Region Sequence Item from given item - * @param source The item to read from - * @param clearOldData If OFTrue, old data is cleared first, otherwise it is - * kept where not overwritten - * @return EC_Normal if successful, error otherwise - */ - virtual OFCondition read(DcmItem& source, - const OFBool clearOldData = OFTrue); - - /** Write Anatomic Region Sequence Item to given item - * @param item The item to write to - * @return EC_Normal if successful, error otherwise - */ - virtual OFCondition write(DcmItem& item); - - /** Assignment operator (performs deep copy) - * @param rhs The item to copy from - * @return result - */ - PrimaryAnatomicStructureMacroItem& operator=(const PrimaryAnatomicStructureMacroItem &rhs); - -private: - - /// Primary Anatomic Structure Sequence Item - CodeSequenceMacro m_AnatomicStructure; - - /// Primary Anatomic Structure Structure Modifier Sequence (SQ, 1-n, 3) - OFVector m_AnatomicStructureModifier; - -}; - - /** Class representing the Primary Anatomic Structure Macro */ -class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacro -{ - -public: - - /** Constructor - */ - PrimaryAnatomicStructureMacro(); - - /** Copy constructor - * @param rhs The macro to copy from - */ - PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs); - - /** Virtual destructor - */ - virtual ~PrimaryAnatomicStructureMacro(); - - /** Clear (removes) all attributes handled by the modules of this component. - */ - virtual void clearData(); - - /** Check whether this component's data satisfies the underlying - * rules - * @param quiet If OFTrue, not error / warning messages will be produced. - * Only the returned error code will indicate error or OK. Per - * default, logging output is produced. - * @result EC_Normal if rules are satisfied, error otherwise - */ - virtual OFCondition check(const OFBool quiet = OFFalse); - - /** Return Primary Anatomic Structure items - * @return Reference to items of this macro - */ - virtual OFVector& getPrimaryAnatomicStructure(); - - /** Reads Primary Anatomic Region Sequence (i.e.\ this macro) from given item - * @param source The item to read from - * @param clearOldData If OFTrue, old data is cleared first, otherwise it is - * kept where not overwritten - * @return EC_Normal if reading was fine, error otherwise - */ - virtual OFCondition read(DcmItem& source, - const OFBool clearOldData = OFTrue); - - /** Write Anatomic Region Sequence (i.e.\ this macro) to given item - * @param item The item to write to - * @return EC_Normal if writing was fine, error otherwise - */ - virtual OFCondition write(DcmItem& item); - - /** Assignment operator - * @param rhs The macro to copy from - * @result Reference to "this" object - */ - PrimaryAnatomicStructureMacro& operator=(const PrimaryAnatomicStructureMacro &rhs); - -private: - - /// Primary Anatomic Structure Sequence (SQ, 0-1, 3) - OFVector m_PrimaryAnatomicStructure; -}; - +typedef CodeWithModifiers PrimaryAnatomicStructureMacro; /** Class representing the General Anatomy Mandatory or Optional Macro */ @@ -847,7 +723,7 @@ public: */ GeneralAnatomyMacro(const OFString& type); - /** Copy constructor + /** Copy constructor, creates deep copy. * @param rhs The macro to copy from */ GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs); @@ -907,10 +783,24 @@ public: */ GeneralAnatomyMacro& operator=(const GeneralAnatomyMacro &rhs); + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * objects (this and rhs parameter) are compared by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the rhs object, or all compared components match + * but the rhs component is shorter. + * 1 if either the value of the first component that does not match + * is greater in the rhs object, or all compared components match + * but the rhs component is longer. + */ + virtual int compare(const GeneralAnatomyMacro& rhs) const; + private: /// Type (1,2,3) of Anatomic Region Sequence. - OFString m_Type; // TODO: Make enum? + OFString m_Type; /// Anatomic Region Sequence (SQ, 1, 1) (Code Sequence Macro within item of /// Anatomic Region Sequence)) @@ -1284,6 +1174,7 @@ public: * @param source The item to read from * @param clearOldData If OFTrue, old data is cleared before reading, otherwise * it is kept/overwritten + * @return EC_Normal if reading was successful, an error code otherwise */ virtual OFCondition read(DcmItem& source, const OFBool clearOldData = OFTrue); @@ -1321,7 +1212,7 @@ private: /** Class representing the HL7 V2 Hierarchic Designator Macro */ -class HL7HierarchicDesignatorMacro : public IODComponent +class DCMTK_DCMIOD_EXPORT HL7HierarchicDesignatorMacro : public IODComponent { public: @@ -1405,7 +1296,7 @@ public: /** Class representing the Mandatory View and Slice Progression Direction Macro */ -class MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent +class DCMTK_DCMIOD_EXPORT MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent { public: diff --git a/dcmiod/include/dcmtk/dcmiod/iodreferences.h b/dcmiod/include/dcmtk/dcmiod/iodreferences.h index 8d0cb987..5d037e2f 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodreferences.h +++ b/dcmiod/include/dcmtk/dcmiod/iodreferences.h @@ -197,6 +197,10 @@ class DCMTK_DCMIOD_EXPORT IODImageReference : public IODReference */ virtual TYPE getType() const {return IMAGE; } + // Avoid overridden virtual function warning, i.e. tell the compiler that + // we want to have both functions to be polymorph and available to the user. + using IODReference::readFromFile; + /** Initialize reference from given file * @param filename The file to read from * @param frameNumbers The frame numbers to reference. It is not checked @@ -246,6 +250,10 @@ class DCMTK_DCMIOD_EXPORT IODSegmentationReference : public IODReference */ virtual TYPE getType() const {return SEGMENT; } + // Avoid overridden virtual function warning, i.e. tell the compiler that + // we want to have both functions to be polymorph and available to the user. + using IODReference::readFromFile; + /** Initialize reference from given file * @param filename The file to read from * @param segmentNumbers The segment numbers to reference. It is not diff --git a/dcmiod/include/dcmtk/dcmiod/iodutil.h b/dcmiod/include/dcmtk/dcmiod/iodutil.h index d4f3c393..8de4ef81 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodutil.h +++ b/dcmiod/include/dcmtk/dcmiod/iodutil.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -29,6 +29,8 @@ #include "dcmtk/dcmdata/dcsequen.h" #include "dcmtk/dcmdata/dcdatset.h" #include "dcmtk/dcmdata/dcdatutl.h" +#include "dcmtk/ofstd/ofdate.h" +#include "dcmtk/ofstd/oftime.h" #include "dcmtk/dcmiod/ioddef.h" #include "dcmtk/dcmiod/iodrules.h" #include "dcmtk/dcmiod/iodtypes.h" @@ -636,6 +638,7 @@ public: if ( result.bad() ) { destination.findAndDeleteSequenceItem(seqKey, -1 /* last */); + DCMIOD_ERROR("Could not write item #" << count << " in " << DcmTag(seqKey).getTagName() << ": " << result.text()); } } else @@ -755,12 +758,16 @@ public: /* If we do not have data, insert empty for type 2 */ else if (type == "2") { - destination.insertEmptyElement(seqKey); + destination.insertEmptyElement(seqKey); } else if (type == "1C") { DCMIOD_TRACE("Skipping type 1C sequence " << seqKey << ": No data or incomplete data available"); } + else if (type == "3") + { + DCMIOD_TRACE("Skipping type 3 sequence " << seqKey << ": No data or incomplete data available"); + } /* Check outcome */ checkSubSequence(result, destination, seqKey, "1", type, module); } @@ -793,7 +800,10 @@ public: DCMIOD_ERROR("Cannot write sequence " << seqKey << " (no rule supplied)"); result = EC_CannotCheck; } - writeSingleItem(result, seqKey, source, destination, rule->getType(), rule->getModule()); + else + { + writeSingleItem(result, seqKey, source, destination, rule->getType(), rule->getModule()); + } } } @@ -864,6 +874,26 @@ public: } } + + template + static OFCondition setContentDateAndTimeNow(ModuleType& module) + { + OFDate date; + date.setCurrentDate(); + OFString tempstr; + date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */); + OFCondition result = module.setContentDate(tempstr); + if (result.good()) + { + OFTime time; + time.setCurrentTime(); + time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse); + result = module.setContentTime(tempstr); + } + return result; + } + + /** Function that takes a string representation of a tag key and * converts it to a tag key instance if possible * @param keyString String of the format "(gggg,eeee)" @@ -887,6 +917,19 @@ public: */ static OFString createUID(const Uint8 level = 0); + /** Print warning if more than 65535 frames are present. This is the maximum + * number since the Number of Frames attribute is only 16 bit thus not + * permitting larger values. + * The method returns the number of frames that can be used, i.e. either + * 65535 if the maximum is exceeded, otherwise the actual number of frames. + * @param numFramesPresent The number of frames actually present + * @param warning The message to be printed if Number of Frames is larger + * than 65535. + * @return Number of frames that can be safely used. + */ + static Uint16 limitMaxFrames(const size_t numFramesPresent, + const OFString& warning); + private: // We only have static functions so we do not need an instance of diff --git a/dcmiod/include/dcmtk/dcmiod/modbase.h b/dcmiod/include/dcmtk/dcmiod/modbase.h index d372a66d..2270c177 100644 --- a/dcmiod/include/dcmtk/dcmiod/modbase.h +++ b/dcmiod/include/dcmtk/dcmiod/modbase.h @@ -66,8 +66,8 @@ public: IODComponent(IODComponent* parent = NULL); /** Assignment operator, copies contained item and rule set from rhs to - * "this" attribute set. Produces clone copy, i.e.\ the contained item - * and the rule set is copied. The parent component is set to NULL. + * "this" attribute set. Performs deep copy, i.e.\ the contained item + * and the rule set are copied. The parent component is set to NULL. * @param rhs The IODComponent to be assigned * @return Reference to this module */ @@ -192,22 +192,28 @@ public: IODRules& rules, DcmItem& destination, const OFString& componentName); + protected: - /// Shared pointer to the data handled by this class. The item may contain - /// more attributes than this class is actually responsible for - OFshared_ptr m_Item; + /// Shared pointer to the data handled by this class. The item may contain + /// more attributes than this class is actually responsible for + OFshared_ptr m_Item; + + /// Rules describing the attributes governed by this class + OFshared_ptr m_Rules; - /// Rules describing the attributes governed by this class - OFshared_ptr m_Rules; + /// The parent component (may be NULL) of this class + IODComponent* m_Parent; - /// The parent component (may be NULL) of this class - IODComponent* m_Parent; }; /** The class IODModule is an IODComponent without parent component since * a module does always belong to the top level dataset. + * Also, different from IODComponents, modules usually share data and + * rules. This is taken into account in the assignment operator and + * copy constructor which only create a shallow copy, i.e. modules + * share the same data and rules afterwards. */ class DCMTK_DCMIOD_EXPORT IODModule : public IODComponent { @@ -229,6 +235,19 @@ public: */ IODModule(); + /** Copy constructor, creates shallow copy + * @param rhs The module to copy from + */ + IODModule(const IODModule& rhs); + + /** Assignment operator, creates shallow copy + * @param rhs The module to copy from + * @return Returns reference to this object + */ + IODModule& operator=(const IODModule& rhs); + + /** Desctructor + */ ~IODModule() {}; }; diff --git a/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h b/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h index 0991f456..43368a25 100644 --- a/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h +++ b/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -73,13 +73,15 @@ public: virtual ~IODCommonInstanceReferenceModule(); /** Add references + * @param references The references to be added + * @param studyInstanceUID The Study Instance UID the references belong to + * @param clearOldData Delete any old referneces if OFTrue, otherwise keep them * @result EC_Normal if successful, error otherwise */ virtual size_t addReferences(const IODReferences& references, const OFString& studyInstanceUID, const OFBool clearOldData = OFTrue); - /** Read data of this module from given source item * @param source The item to read from * @param clearOldData If OFTrue, old data is cleared before reading, otherwise @@ -122,6 +124,8 @@ protected: private: + void freeMemory(); + /// Vector with all items of the Referenced Series Sequence OFVector m_ReferenceSeriesItems; diff --git a/dcmiod/include/dcmtk/dcmiod/modenhequipment.h b/dcmiod/include/dcmtk/dcmiod/modenhequipment.h index 78b9f5e0..7721d3c1 100644 --- a/dcmiod/include/dcmtk/dcmiod/modenhequipment.h +++ b/dcmiod/include/dcmtk/dcmiod/modenhequipment.h @@ -40,9 +40,9 @@ class DCMTK_DCMIOD_EXPORT IODEnhGeneralEquipmentModule : public IODModule public: /** Convenient struct containing all information required for setting - * equipment information for use by external code) + * enhanced equipment information (for use by external code) */ - struct EquipmentInfo + struct DCMTK_DCMIOD_EXPORT EquipmentInfo { /** Default Constructor @@ -51,39 +51,52 @@ public: m_Manufacturer(), m_ManufacturerModelName(), m_DeviceSerialNumber(), - m_SoftwareVersions() {}; + m_SoftwareVersions() {} /** Convenience Constructor setting all values * @param manufacturer Manufacturer - * @param modelName Model name + * @param manufacturerModelName Manufacturer's model name * @param deviceSerialNumber Serial number - * *@param softwareVersions Software versions + * @param softwareVersions Software versions */ EquipmentInfo(const OFString& manufacturer, - const OFString& modelName, + const OFString& manufacturerModelName, const OFString& deviceSerialNumber, const OFString& softwareVersions) : m_Manufacturer(manufacturer), - m_ManufacturerModelName(modelName), + m_ManufacturerModelName(manufacturerModelName), m_DeviceSerialNumber(deviceSerialNumber), - m_SoftwareVersions(softwareVersions) {}; + m_SoftwareVersions(softwareVersions) {} - // Manufacturer (VM 1) + /** Perform simple check whether all equipment data is filled in. Does not + * check VR or VM (will be checked in write() routine, though) + * @return OFTrue if data is complete, OFFalse otherwise + */ + OFBool isDataComplete() const + { + if (m_Manufacturer.empty() || m_ManufacturerModelName.empty() || m_DeviceSerialNumber.empty() || m_SoftwareVersions.empty()) + { + return OFFalse; + } + return OFTrue; + } + + /// Manufacturer (VM 1) OFString m_Manufacturer; - // Manufacturer's Model Name (VM 1) + /// Manufacturer's Model Name (VM 1) OFString m_ManufacturerModelName; - // Device Serial Number (VM 1) + /// Device Serial Number (VM 1) OFString m_DeviceSerialNumber; - // Software Version(s) (VM 1-n) + /// Software Version(s) (VM 1-n) OFString m_SoftwareVersions; }; /** Constructor - * @param item The item to be used for data storage. If NULL, the - * class creates an empty data container. + * @param item The item to be used for data storage. If NULL, the class + * creates an empty data container. * @param rules The rule set for this class. If NULL, the class creates * one from scratch and adds its values. */ @@ -101,9 +114,9 @@ public: static OFCondition create(const EquipmentInfo& info, IODEnhGeneralEquipmentModule* equipment); - /** Resets rules to their original values. - */ - virtual void resetRules(); + /** Resets rules to their original values. + */ + virtual void resetRules(); /** Get name of module * @return Name of the module ("EnhancedEquipmentModule") @@ -174,6 +187,10 @@ public: virtual OFCondition setSoftwareVersions(const OFString &value, const OFBool checkValue = OFTrue); + /** Set all equipment information at once + * @param info The equipment information to be set. + * @return EC_Normal if values could be set, error otherwise + */ virtual OFCondition set(const EquipmentInfo& info); private: diff --git a/dcmiod/include/dcmtk/dcmiod/modequipment.h b/dcmiod/include/dcmtk/dcmiod/modequipment.h index 8f6c6949..f974c838 100644 --- a/dcmiod/include/dcmtk/dcmiod/modequipment.h +++ b/dcmiod/include/dcmtk/dcmiod/modequipment.h @@ -43,30 +43,50 @@ class DCMTK_DCMIOD_EXPORT IODGeneralEquipmentModule : public IODModule public: - /** Convenient struct containing all information required for setting - * equipment information for use by external code) + /** Convenient struct containing commonly used equipment information + * (for use by external code) */ - struct EquipmentInfo + struct DCMTK_DCMIOD_EXPORT EquipmentInfo { - // Manufacturer (VM 1) + + /** Default Constructor + */ + EquipmentInfo() {} + + /** Convenience Constructor setting commonly used values + * @param manufacturer Manufacturer + * @param manufacturerModelName Manufacturer's model name + * @param deviceSerialNumber Serial number + * @param softwareVersions Software versions + */ + EquipmentInfo(const OFString& manufacturer, + const OFString& manufacturerModelName, + const OFString& deviceSerialNumber, + const OFString& softwareVersions) : + m_Manufacturer(manufacturer), + m_ManufacturerModelName(manufacturerModelName), + m_DeviceSerialNumber(deviceSerialNumber), + m_SoftwareVersions(softwareVersions) {} + + /// Manufacturer (VM 1) OFString m_Manufacturer; - // Manufacturer's Model Name (VM 1) + /// Manufacturer's Model Name (VM 1) OFString m_ManufacturerModelName; - // Device Serial Number (VM 1) + /// Device Serial Number (VM 1) OFString m_DeviceSerialNumber; - // Software Version(s) (VM 1-n) + /// Software Version(s) (VM 1-n) OFString m_SoftwareVersions; }; /** Constructor - * @param item The item to be used for data storage. If NULL, the - * class creates an empty data container. - * @param rules The rule set for this class. If NULL, the class creates - * one from scratch and adds its values. - */ + * @param item The item to be used for data storage. If NULL, the class + * creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ IODGeneralEquipmentModule(OFshared_ptr item, OFshared_ptr rules); @@ -84,7 +104,6 @@ public: /** Get name of module * @return Name of the module ("GeneralEquipmentModule") - * depending on configuration) */ virtual OFString getName() const; @@ -225,7 +244,7 @@ public: private: - /// Name of the modue ("GeneralEquipmentModule") + /// Name of the module ("GeneralEquipmentModule") OFString m_ModuleName; }; diff --git a/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h b/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h new file mode 100644 index 00000000..05072287 --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h @@ -0,0 +1,246 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Floating Point and Double Floating Point Image Pixel Module + * + */ + +#ifndef MODFLOATINGPOINTIMAGEPIXEL_H +#define MODFLOATINGPOINTIMAGEPIXEL_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmdata/dcdeftag.h" + +/** Class representing Floating Point Image Pixel Module: + * + * Samples Per Pixel: (US, 1, 1) + * Photometric Interpretation (CS, 1, 1) + * Rows: (US, 1, 1) + * Columns: (US, 1, 1) + * Bits Allocated: (US, 1 1) + * Pixel Aspect Ratio: (IS, 2, 1C) + * Float Pixel Padding Value: (FL, 1, 3) + * Float Pixel Padding Range Limit: (FL, 1, 1C) + */ +class DCMTK_DCMIOD_EXPORT IODFloatingPointImagePixelModule : public IODImagePixelBase +{ + +public: + + /// Data type of pixels + typedef Float32 value_type; + + static const DcmTagKey pixel_data_tag; + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + IODFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + IODFloatingPointImagePixelModule(); + + /** Destructor + */ + virtual ~IODFloatingPointImagePixelModule(); + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module + * @return Name of the module ("FloatingPointImagePixelModule") + */ + virtual OFString getName() const; + + /** Get pixel data type, always returns DataType::FLOAT for this class. + * @return The data type of the pixel data + */ + virtual DataType getDataType() const; + + /** Get Float Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFloatPixelPaddingValue(Float32& value, + const signed long pos = 0); + + /** Get Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFloatPixelPaddingRangeLimit(Float32& value, + const signed long pos = 0); + + /** Set Float Pixel Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FL) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFloatPixelPaddingValue(const Float32 value, + const OFBool checkValue = OFTrue); + + /** Set Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FL) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFloatPixelPaddingRangeLimit(const Float32 value, + const OFBool checkValue = OFTrue); + +private: + + /// This module's name ("FloatingPointImagePixelModule") + static const OFString m_ModuleName; + +}; + + +/** Class representing Double Floating Point Image Pixel Module: + * + * Samples Per Pixel: (US, 1, 1) + * Photometric Interpretation (CS, 1, 1) + * Rows: (US, 1, 1) + * Columns: (US, 1, 1) + * Bits Allocated: (US, 1 1) + * Pixel Aspect Ratio: (IS, 2, 1C) + * Double Float Pixel Padding Value: (FD, 1, 3) + * Double Float Pixel Padding Range Limit: (FD, 1, 1C) + */ +class DCMTK_DCMIOD_EXPORT IODDoubleFloatingPointImagePixelModule: public IODImagePixelBase +{ + +public: + + /// Data type of pixels + typedef Float64 value_type; + + static const DcmTagKey pixel_data_tag; + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + IODDoubleFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + IODDoubleFloatingPointImagePixelModule(); + + /** Destructor + */ + virtual ~IODDoubleFloatingPointImagePixelModule(); + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module + * @return Name of the module ("DoubleFloatingPointImagePixelModule") + */ + virtual OFString getName() const; + + /** Get pixel data type, always returns DataType::DOUBLE for this class. + * @return The data type of the pixel data + */ + virtual DataType getDataType() const; + + /** Get Double Float Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatPixelPaddingValue(Float64& value, + const signed long pos = 0); + + /** Get Double Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatPixelPaddingRangeLimit(Float64& value, + const signed long pos = 0); + + /** Set Double Float Pixel Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FD) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatPixelPaddingValue(const Float64 value, + const OFBool checkValue = OFTrue); + + /** Set Double Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FD) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatPixelPaddingRangeLimit(const Float64 value, + const OFBool checkValue = OFTrue); + +private: + + /// This module's name ("DoubleFloatingPointImagePixelModule") + static const OFString m_ModuleName; + +}; + +#endif // MODFLOATINGPOINTIMAGEPIXEL_H diff --git a/dcmiod/include/dcmtk/dcmiod/modfor.h b/dcmiod/include/dcmtk/dcmiod/modfor.h index 7da8fc42..76d7519f 100644 --- a/dcmiod/include/dcmtk/dcmiod/modfor.h +++ b/dcmiod/include/dcmtk/dcmiod/modfor.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -97,6 +97,13 @@ public: virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool checkValue = OFTrue); + /** Make sure that the module contains a Frame of Reference Instance UID, i.e.\ + * a new one is created if empty. An invalid UID is corrected if desired. + * @param correctInvalid Correct invalid UID if OFTrue, otherwise do nothing + * + */ + void ensureFrameOfReferenceUID(const OFBool correctInvalid = OFFalse); + private: diff --git a/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h b/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h index 5fa81148..70d289cd 100644 --- a/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h +++ b/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h @@ -36,7 +36,7 @@ * Study ID: (SH, 1, 2) * Accession Number: (SH, 1, 2) * Study Description: (LO, 1, 3) - * Issuer of Accession Number Sequence: (SQ, 3, 1) + * Issuer of Accession Number Sequence: (SQ, 1, 3) * Procedure Code Sequence: (SQ, 1-n, 3) * Reason for Performed Procedure Code Sequence: (SQ, 1-n, 3) */ diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixel.h b/dcmiod/include/dcmtk/dcmiod/modimagepixel.h index d76be12f..281edf59 100644 --- a/dcmiod/include/dcmtk/dcmiod/modimagepixel.h +++ b/dcmiod/include/dcmtk/dcmiod/modimagepixel.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -23,9 +23,10 @@ #define MODIMAGEPIXEL_H #include "dcmtk/config/osconfig.h" -#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmdata/dcdeftag.h" -/** Class representing the General Image Module: +/** Class representing the Image Pixel Module: * * Samples Per Pixel: (US, 1, 1) * Photometric Interpretation (CS, 1, 1) @@ -40,11 +41,17 @@ * Pixel Aspect Ratio: (IS, 2, 1C) * ICC Profile: (OB, 1, 3) */ -class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODModule +template +class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODImagePixelBase { public: + /// Data type of pixels + typedef T value_type; + + static const DcmTagKey pixel_data_tag; + /** Constructor * @param item The item to be used for data storage. If NULL, the * class creates an empty data container. @@ -62,6 +69,21 @@ public: */ virtual ~IODImagePixelModule(); + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + /** Resets rules to their original values */ virtual void resetRules(); @@ -71,44 +93,10 @@ public: */ virtual OFString getName() const; - /** Get Samples per Pixel - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise + /** Get pixel data type, always returns DataType::INTEGER for this class. + * @return The data type of the pixel data */ - virtual OFCondition getSamplesPerPixel(Uint16 &value, - const signed long pos = 0); - - /** Get Photometric Interpretation - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getPhotometricInterpretation(OFString&value, - const signed long pos = 0); - - /** Get Rows - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getRows(Uint16& value, - const signed long pos = 0); - - /** Get Columns - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getColumns(Uint16& value, - const signed long pos = 0); - /** Get Bits Allocated - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getBitsAllocated(Uint16& value, - const signed long pos = 0); + virtual DataType getDataType() const; /** Get Bits Stored * @param value Reference to variable in which the value should be stored @@ -142,21 +130,13 @@ public: virtual OFCondition getPlanarConfiguration(Uint16& value, const signed long pos = 0); - /** Get Pixel Aspect Ratio - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getPixelAspectRatio(Uint16& value, - const signed long pos = 0); - /** Get ICC Profile * @param values Reference to variable in which the values should be stored * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition getICCProfile(OFVector& values); - /** set Samples per Pixel + /** Set Samples per Pixel * @param value Reference to variable in which the value should be stored * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled * @return EC_Normal if successful, an error code otherwise @@ -172,23 +152,6 @@ public: virtual OFCondition setPhotometricInterpretation(const OFString& value, const OFBool checkValue = OFTrue); - /** Set Rows - * @param value Reference to variable in which the value should be stored - * @param checkValue Check 'value'. Not evaluated (here for consistency - * with other setter functions). - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setRows(const Uint16 value, - const OFBool checkValue = OFTrue); - - /** Set Columns - * @param value Reference to variable in which the value should be stored - * @param checkValue Check 'value'. Not evaluated (here for consistency - * with other setter functions). - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setColumns(const Uint16 value, - const OFBool checkValue = OFTrue); /** Set Bits Allocated * @param value Reference to variable in which the value should be stored * @param checkValue Check 'value'. Not evaluated (here for consistency @@ -234,16 +197,6 @@ public: virtual OFCondition setPlanarConfiguration(const Uint16 value, const OFBool checkValue = OFTrue); - /** Set Pixel Aspect Ratio - * @param verticalPixelSize The vertical pixel size (no unit) - * @param horizontalPixelSize The horizontal pixel size (no unit) - * @param checkValue Check 'value' for conformance with VR (IS) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize, - const OFString& horizontalPixelSize, - const OFBool checkValue = OFTrue); - /** Set ICC Profile * @param values Reference to variable in which the values should be stored * @param length Length of array provided in values parameter @@ -251,6 +204,7 @@ public: */ virtual OFCondition setICCProfile(const Uint8* values, const size_t length); + private: /// This module's name ("ImagePixelModule") diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h new file mode 100644 index 00000000..7455e020 --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h @@ -0,0 +1,168 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point) + * + */ + +#ifndef MODIMAGEPIXELBASE_H +#define MODIMAGEPIXELBASE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/modbase.h" + +/** Base class for deriving Image Pixel Module, Floating Point Image Pixel + * Module and Double Floating Point Image Pixel (and maybe more later) + */ +class DCMTK_DCMIOD_EXPORT IODImagePixelBase : public IODModule +{ + +public: + + enum DataType + { + DATA_TYPE_UNKNOWN, + DATA_TYPE_FLOAT, + DATA_TYPE_DOUBLE, + DATA_TYPE_INTEGER + }; + + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + IODImagePixelBase(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + IODImagePixelBase(); + + /** Destructor + */ + virtual ~IODImagePixelBase(); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module + * @return Name of the module ("ImagePixelModule") + */ + virtual OFString getName() const; + + /** Get pixel data type + * @return The data type of the pixel data + */ + virtual DataType getDataType() const = 0; + + // ------------------------------------------------------------------------- + // Getters for all attribute that appear in all Image Pixel Modules + // ------------------------------------------------------------------------- + + /** Get Samples per Pixel + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSamplesPerPixel(Uint16 &value, + const signed long pos = 0); + + /** Get Photometric Interpretation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPhotometricInterpretation(OFString&value, + const signed long pos = 0); + + /** Get Rows + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRows(Uint16& value, + const signed long pos = 0); + + /** Get Columns + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getColumns(Uint16& value, + const signed long pos = 0); + + /** Get Bits Allocated + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBitsAllocated(Uint16& value, + const signed long pos = 0); + + /** Get Pixel Aspect Ratio + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPixelAspectRatio(Uint16& value, + const signed long pos = 0); + + // ------------------------------------------------------------------------- + // Setters for all attribute that appear in all Image Pixel Modules and which + // do not have fixed values in sub classes. + // ------------------------------------------------------------------------- + + /** Set Rows + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRows(const Uint16 value, + const OFBool checkValue = OFTrue); + + /** Set Columns + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setColumns(const Uint16 value, + const OFBool checkValue = OFTrue); + + /** Set Pixel Aspect Ratio + * @param verticalPixelSize The vertical pixel size (no unit) + * @param horizontalPixelSize The horizontal pixel size (no unit) + * @param checkValue Check 'value' for conformance with VR (IS) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize, + const OFString& horizontalPixelSize, + const OFBool checkValue = OFTrue); + +private: + + /// This module's name ("ImagePixelBase") + static const OFString m_ModuleName; + +}; + +#endif // MODIMAGEPIXELBASE_H diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h new file mode 100644 index 00000000..d6a5ba22 --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h @@ -0,0 +1,281 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point) + * + */ + +#ifndef MODIMAGEPIXELVARIANT_H +#define MODIMAGEPIXELVARIANT_H + +#include "dcmtk/config/osconfig.h" + +#include "dcmtk/ofstd/ofvriant.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" + + +/** Visitor for returning base class of given Image Pixel Module + */ +struct IODImagePixelVariantBaseVisitor +{ + + /** Returns NULL since given argument is no pixel module at all + * @return OFnullptr + */ + IODImagePixelBase* operator()( OFmonostate& ) + { + return OFnullptr; + } + + /** Returns the base class pointer of all pixel modules + * @param base IODImagePixelBase pointer to given class instance + * @return OFnullptr + */ + IODImagePixelBase* operator()( IODImagePixelBase& base ) + { + return &base; + } +}; + +/** Class representing different pixel modules from the DICOM standard: + * The class Image Pixel Module, the Floating Point Image Pixel module + * and the Double Floating Point Image Pixel module + */ +#ifdef DCMTK_USE_CXX11_STL +template +class IODImagePixelVariant +: public OFvariant +#else +template +class IODImagePixelVariant +: public OFvariant +#endif +{ + +public: + + /** Constructor + */ + IODImagePixelVariant() + : IODImagePixelVariant::variant() + { + + } + + /** Constructor, constructs pixel module based on given type + */ + template + IODImagePixelVariant(const T& t) + : IODImagePixelVariant::variant(t) + { + + } + + /** Destructor + */ + ~IODImagePixelVariant() + { + + } + + /** Get name of module + * @return Name of the actual module (e.g. "ImagePixelModule") + */ + OFString getName() const + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getName(); + return OFString(); + } + + /** Get pixel data type + * @return The data type of the pixel data + */ + IODImagePixelBase::DataType getDataType() const + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getDataType(); + return IODImagePixelBase::DATA_TYPE_UNKNOWN; + } + + /** Clear data (base class version) + */ + void clearData() + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + pBase->clearData(); + } + + // ------------------------------------------------------------------------- + // Getters for all attribute that appear in all Image Pixel Modules + // ------------------------------------------------------------------------- + + /** Get Samples per Pixel + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getSamplesPerPixel(Uint16 &value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getSamplesPerPixel(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Photometric Interpretation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getPhotometricInterpretation(OFString&value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getPhotometricInterpretation(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Rows + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getRows(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getRows(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Columns + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getColumns(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getColumns(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Bits Allocated + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getBitsAllocated(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getBitsAllocated(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Pixel Aspect Ratio + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getPixelAspectRatio(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getPixelAspectRatio(value, pos); + return IOD_EC_InvalidPixelData; + } + + // ------------------------------------------------------------------------- + // Setters for all attribute that appear in all Image Pixel Modules and which + // do not have fixed values in sub classes. + // ------------------------------------------------------------------------- + + /** Set Rows + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition setRows(const Uint16 value, + const OFBool checkValue = OFTrue) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->setRows(value, checkValue); + return IOD_EC_InvalidPixelData; + + } + + /** Set Columns + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition setColumns(const Uint16 value, + const OFBool checkValue = OFTrue) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->setColumns(value, checkValue); + return IOD_EC_InvalidPixelData; + + } + + /** Set Pixel Aspect Ratio + * @param verticalPixelSize The vertical pixel size (no unit) + * @param horizontalPixelSize The horizontal pixel size (no unit) + * @param checkValue Check 'value' for conformance with VR (IS) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition setPixelAspectRatio(const OFString& verticalPixelSize, + const OFString& horizontalPixelSize, + const OFBool checkValue = OFTrue) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->setPixelAspectRatio(verticalPixelSize, horizontalPixelSize, checkValue); + return IOD_EC_InvalidPixelData; + + } + + /** Write pixel module base class data to given item + * @param dataset The item to write to (usually dataset level) + * @return EC_Normal if successful, error otherwise + */ + OFCondition write(DcmItem& dataset) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->write(dataset); + return IOD_EC_InvalidPixelData; + + } + + /** Read pixel module base class data from given item + * @param dataset The item to read from (usually dataset level) + * @return EC_Normal if successful, error otherwise + */ + OFCondition read(DcmItem& dataset) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->read(dataset); + return IOD_EC_InvalidPixelData; + } + +}; + +#endif // MODIMAGEPIXELBASE_H diff --git a/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h b/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h index 1d92731d..83ff45ed 100644 --- a/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h +++ b/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h @@ -261,7 +261,8 @@ public: /** Convenience method to add Dimension Index. * @param dimensionIndexPointer The Dimension Index Pointer attribute * @param dimensionOrganizationUID The Dimension Organization UID of the dimension organization - * the pointer refers to + * the pointer refers to. If UID does not exist yet (in the Dimension + * Organization Sequence, it is created there automatically). * @param functionalGroupPointer The functional group where the pointer attribute can be found * @param dimensionDescriptionLabel The description label of this dimension (optional) * @param dimensionIndexPrivateCreator The private creator of the Dimension Index Pointer diff --git a/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h b/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h index cc782334..7a46b007 100644 --- a/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h +++ b/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -101,6 +101,7 @@ public: /** Get Acquisition Time Synchronized * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition getAcquisitionTimeSynchronized(OFString& value, const signed long pos = 0) const; @@ -108,6 +109,7 @@ public: /** Get Time Source * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition getTimeSource(OFString& value, const signed long pos = 0) const; @@ -115,6 +117,7 @@ public: /** Get Time Distribution Protocol * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition getTimeDistributionProtocol(OFString& value, const signed long pos = 0) const; @@ -122,6 +125,7 @@ public: /** Get NTP Source Address * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition getNTPSourceAddress(OFString& value, const signed long pos = 0) const; @@ -198,6 +202,29 @@ public: virtual OFCondition setNTPSourceAddress(const OFString &value, const OFBool checkValue = OFTrue); +protected: + + /** Check whether given string is a valid value for attribute + * Acquisition Time Synchronized + * @param value The value to check + * @return OFTrue if value is valid for this attribute, OFFalse otherwise + */ + virtual OFBool isValidAcquisitionTimeSynchronized(const OFString& value); + + /** Check whether given string is a valid value for attribute + * Time Distribution Protocol + * @param value The value to check + * @return OFTrue if value is valid for this attribute, OFFalse otherwise + */ + virtual OFBool isValidTimeDistributionProtocol(const OFString& value); + + /** Check whether given string is a valid value for attribute + * Synchronization Trigger + * @param value The value to check + * @return OFTrue if value is valid for this attribute, OFFalse otherwise + */ + virtual OFBool isValidSynchronizationTrigger(const OFString& value); + private: /// Module name "SynchronizationModule" diff --git a/dcmiod/libsrc/CMakeLists.txt b/dcmiod/libsrc/CMakeLists.txt index 51d62ff4..0f6cf425 100644 --- a/dcmiod/libsrc/CMakeLists.txt +++ b/dcmiod/libsrc/CMakeLists.txt @@ -1,9 +1,9 @@ # create library from source files DCMTK_ADD_LIBRARY(dcmiod cielabutil + iodcontentitemmacro iodcommn iodmacro - iodimage iodrules iodreferences iodutil @@ -15,12 +15,14 @@ DCMTK_ADD_LIBRARY(dcmiod modenhusimage modenhusseries modequipment + modfloatingpointimagepixel modfor modgeneralimage modgeneralseries modgeneralstudy modhelp modimagepixel + modimagepixelbase modmultiframefg modmultiframedimension modpatient @@ -31,5 +33,4 @@ DCMTK_ADD_LIBRARY(dcmiod modusfor) DCMTK_TARGET_LINK_MODULES(dcmiod dcmdata ofstd oflog) -DCMTK_TARGET_LINK_LIBRARIES(dcmiod ${ZLIB_LIBS}) diff --git a/dcmiod/libsrc/Makefile.dep b/dcmiod/libsrc/Makefile.dep index 21270be8..944fe001 100644 --- a/dcmiod/libsrc/Makefile.dep +++ b/dcmiod/libsrc/Makefile.dep @@ -136,25 +136,21 @@ iodcommn.o: iodcommn.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodreferences.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h -iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmiod/iodimage.h ../include/dcmtk/dcmiod/iodcommn.h \ - ../include/dcmtk/dcmiod/iodrules.h \ +iodcontentitemmacro.o: iodcontentitemmacro.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ - ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ - ../include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -179,39 +175,53 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/cielabutil.h \ - ../include/dcmtk/dcmiod/modpatient.h \ - ../../ofstd/include/dcmtk/ofstd/ofmem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ - ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/dcmiod/modbase.h ../include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ @@ -219,18 +229,10 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ - ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ @@ -254,22 +256,7 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmiod/modbase.h \ - ../include/dcmtk/dcmiod/modpatientstudy.h \ - ../../ofstd/include/dcmtk/ofstd/ofoption.h \ - ../../ofstd/include/dcmtk/ofstd/ofalign.h \ - ../include/dcmtk/dcmiod/modgeneralstudy.h \ - ../include/dcmtk/dcmiod/iodmacro.h \ - ../include/dcmtk/dcmiod/modequipment.h \ - ../include/dcmtk/dcmiod/modgeneralseries.h \ - ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \ - ../include/dcmtk/dcmiod/modcommoninstanceref.h \ - ../include/dcmtk/dcmiod/iodreferences.h \ - ../include/dcmtk/dcmiod/modgeneralimage.h \ - ../include/dcmtk/dcmiod/modimagepixel.h \ - ../include/dcmtk/dcmiod/iodutil.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h iodmacro.o: iodmacro.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodmacro.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -453,6 +440,8 @@ iodreferences.o: iodreferences.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -628,6 +617,8 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -641,9 +632,7 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h modacquisitioncontext.o: modacquisitioncontext.cc \ ../../config/include/dcmtk/config/osconfig.h \ @@ -832,6 +821,8 @@ modbase.o: modbase.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h modcommoninstanceref.o: modcommoninstanceref.cc \ ../../config/include/dcmtk/config/osconfig.h \ @@ -1029,7 +1020,9 @@ modenhequipment.o: modenhequipment.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modenhusimage.o: modenhusimage.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modenhusimage.h \ @@ -1349,7 +1342,83 @@ modequipment.o: modequipment.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h +modfloatingpointimagepixel.o: modfloatingpointimagepixel.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ + ../include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modbase.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h \ @@ -1420,7 +1489,9 @@ modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modgeneralimage.o: modgeneralimage.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modgeneralimage.h \ @@ -1808,6 +1879,7 @@ modhelp.o: modhelp.cc ../../config/include/dcmtk/config/osconfig.h \ modimagepixel.o: modimagepixel.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modimagepixel.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ ../include/dcmtk/dcmiod/modbase.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -1877,7 +1949,84 @@ modimagepixel.o: modimagepixel.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h +modimagepixelbase.o: modimagepixelbase.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ + ../include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modmultiframedimension.o: modmultiframedimension.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modmultiframedimension.h \ @@ -1954,7 +2103,9 @@ modmultiframedimension.o: modmultiframedimension.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modmultiframefg.o: modmultiframefg.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modmultiframefg.h \ @@ -2547,7 +2698,9 @@ modsynchronization.o: modsynchronization.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modusfor.h \ ../../ofstd/include/dcmtk/ofstd/ofoption.h \ @@ -2621,4 +2774,6 @@ modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h diff --git a/dcmiod/libsrc/Makefile.in b/dcmiod/libsrc/Makefile.in index 5cfeb145..64eb2668 100644 --- a/dcmiod/libsrc/Makefile.in +++ b/dcmiod/libsrc/Makefile.in @@ -20,14 +20,13 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/incl LOCALDEFS = -objs = cielabutil.o iodcommn.o iodmacro.o iodimage.o iodrules.o iodutil.o \ - iodtypes.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \ +objs = cielabutil.o iodcommn.o iodcontentitemmacro.o iodmacro.o iodreferences.o iodrules.o \ + iodtypes.o iodutil.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \ modenhequipment.o modenhusimage.o modenhusseries.o modequipment.o \ - modfor.o modgeneralimage.o modgeneralseries.o modgeneralstudy.o \ - modhelp.o modimagepixel.o modmultiframefg.o \ - modmultiframedimension.o modpatient.o modpatientstudy.o \ - modsegmentationseries.o modsopcommon.o modsynchronization.o \ - modusfor.o + modfloatingpointimagepixel.o modfor.o modgeneralimage.o modgeneralseries.o \ + modgeneralstudy.o modhelp.o modimagepixelbase.o modimagepixel.o modmultiframedimension.o \ + modmultiframefg.o modpatient.o modpatientstudy.o modsegmentationseries.o modsopcommon.o \ + modsynchronization.o modusfor.o library = libdcmiod.$(LIBEXT) diff --git a/dcmiod/libsrc/cielabutil.cc b/dcmiod/libsrc/cielabutil.cc index 56189ebd..8b03051d 100755 --- a/dcmiod/libsrc/cielabutil.cc +++ b/dcmiod/libsrc/cielabutil.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2005–2010, Pascal Getreuer + * Copyright (C) 2005-2010, Pascal Getreuer * Copyright (C) 2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * @@ -191,7 +191,7 @@ double IODCIELabUtil::labfInv(double n) } -double IODCIELabUtil::min(double a, double b) +double IODCIELabUtil::min2(double a, double b) { if (a <= b) return a; @@ -203,7 +203,7 @@ double IODCIELabUtil::min(double a, double b) double IODCIELabUtil::min3(double a, double b, double c) { if (a <= b) - return min(a,c); + return min2(a,c); else - return min (b,c); + return min2(b,c); } diff --git a/dcmiod/libsrc/iodcommn.cc b/dcmiod/libsrc/iodcommn.cc index 467d91c3..03c7f976 100644 --- a/dcmiod/libsrc/iodcommn.cc +++ b/dcmiod/libsrc/iodcommn.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -51,6 +51,32 @@ DcmIODCommon::DcmIODCommon() } +DcmIODCommon::DcmIODCommon(const DcmIODCommon& rhs) +: m_Item(rhs.m_Item), + m_Rules(rhs.m_Rules), + m_Patient(m_Item, m_Rules), + m_PatientStudy(m_Item, m_Rules), + m_Study(m_Item, m_Rules), + m_Equipment(m_Item, m_Rules), + m_Series(m_Item, m_Rules), + m_FrameOfReference(m_Item, m_Rules), + m_SOPCommon(m_Item, m_Rules), + m_CommonInstanceReferenceModule(m_Item, m_Rules), + m_Modules() +{ + // Set initial values for a new SOP instance + ensureInstanceUIDs(OFFalse); + m_Modules.push_back(&m_Patient); + m_Modules.push_back(&m_PatientStudy); + m_Modules.push_back(&m_Study); + m_Modules.push_back(&m_Equipment); + m_Modules.push_back(&m_Series); + m_Modules.push_back(&m_FrameOfReference); + m_Modules.push_back(&m_SOPCommon); + m_Modules.push_back(&m_CommonInstanceReferenceModule); +} + + DcmIODCommon::~DcmIODCommon() { } @@ -58,12 +84,13 @@ DcmIODCommon::~DcmIODCommon() void DcmIODCommon::clearData() { - OFVector::iterator it = m_Modules.begin(); - while (it != m_Modules.end()) - { - (*it)->clearData(); - it++; - } + // TODO +// OFVector::iterator it = m_Modules.begin(); +// while (it != m_Modules.end()) +// { +// (*it)->clearData(); +// it++; +// } } @@ -178,6 +205,42 @@ OFCondition DcmIODCommon::import(DcmItem& dataset, } +OFCondition DcmIODCommon::importPatientStudyFoR(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR) +{ + DCMIOD_WARN("This function is deprecated and will be removed in later versions of DCMTK, please use import()"); + return import(filename, usePatient, useStudy, useSeries, useFoR); +} + + +OFCondition DcmIODCommon::import(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR) +{ + DcmFileFormat dcmff; + OFCondition result = dcmff.loadFile(filename.c_str()); + if ( result.good() ) + { + DcmDataset *dset = dcmff.getDataset(); + if (dset != NULL) + { + result = import(*dset, usePatient, useStudy, useSeries, useFoR); + } + else + { + DCMIOD_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information"); + result = EC_IllegalCall; + } + } + return result; +} + + void DcmIODCommon::ensureInstanceUIDs(const OFBool correctInvalid) { m_Study.ensureInstanceUID(correctInvalid); diff --git a/dcmiod/libsrc/iodcontentitemmacro.cc b/dcmiod/libsrc/iodcontentitemmacro.cc new file mode 100644 index 00000000..bc76df8a --- /dev/null +++ b/dcmiod/libsrc/iodcontentitemmacro.cc @@ -0,0 +1,800 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Content Item Macro + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofstream.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvrdt.h" +#include "dcmtk/dcmdata/dcvrda.h" +#include "dcmtk/dcmdata/dcvrtm.h" + +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmiod/iodcontentitemmacro.h" + +const OFString ContentItemMacro::ReferencedSOPSequenceItem::m_ComponentName = "ReferencedSOPSequenceItem"; + + +ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(OFshared_ptr item, + OFshared_ptr rules, + IODComponent* parent) +: IODComponent(item, rules, parent) +{ + // reset element rules + resetRules(); +} + + +ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(IODComponent* parent) +: IODComponent(parent) +{ + // reset element rules + resetRules(); +} + + +ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs) +: IODComponent(rhs) +{ +} + + +ContentItemMacro::ReferencedSOPSequenceItem::~ReferencedSOPSequenceItem() +{ + // nothing to do +} + + +OFString ContentItemMacro::ReferencedSOPSequenceItem::getName() const +{ + return m_ComponentName; +} + + +void ContentItemMacro::ReferencedSOPSequenceItem::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_ReferencedFrameNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue); + m_Rules->addRule(new IODRule(DCM_ReferencedSegmentNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue); +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::read( + DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + return EC_Normal; +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + result = IODComponent::write(destination); + + return result; +} + + +SOPInstanceReferenceMacro& ContentItemMacro::ReferencedSOPSequenceItem::getSOPInstanceReferenceMacro() +{ + return m_SOPInstanceReferenceMacro; +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedFrameNumber( + OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ReferencedFrameNumber, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedSegmentNumber( + Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_ReferencedSegmentNumber, value, pos); +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedFrameNumber( + const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ReferencedFrameNumber, value); + return result; +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedSegmentNumber( + const Uint16 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint16(DCM_ReferencedSegmentNumber, value); +} + + +const OFString ContentItemMacro::m_ModuleName = "ContentItemMacro"; + + +ContentItemMacro::ContentItemMacro() +: IODComponent() +{ + resetRules(); +} + + +ContentItemMacro::ContentItemMacro(OFshared_ptr item, + OFshared_ptr rules) +: IODComponent(item, rules) +{ + // reset element rules + resetRules(); +} + + +ContentItemMacro::ContentItemMacro(const ContentItemMacro& rhs) +: IODComponent(rhs) +{ + if (this == &rhs) + return; + + OFVector::const_iterator it = rhs.m_ConceptCodeSequence.begin(); + while (it != rhs.m_ConceptCodeSequence.end()) + { + CodeSequenceMacro* macro = new CodeSequenceMacro(**it); + m_ConceptCodeSequence.push_back(macro); + it++; + } + + it = rhs.m_ConceptNameCodeSequence.begin(); + while (it != rhs.m_ConceptNameCodeSequence.end()) + { + CodeSequenceMacro* macro = new CodeSequenceMacro(**it); + m_ConceptNameCodeSequence.push_back(macro); + it++; + } + + it = rhs.m_MeasurementUnitsCodeSequence.begin(); + while (it != rhs.m_MeasurementUnitsCodeSequence.end()) + { + CodeSequenceMacro* macro = new CodeSequenceMacro(**it); + m_MeasurementUnitsCodeSequence.push_back(macro); + it++; + } + + OFVector::const_iterator m = rhs.m_ReferencedSOPSequence.begin(); + while (m != rhs.m_ReferencedSOPSequence.end()) + { + ReferencedSOPSequenceItem* item = new ReferencedSOPSequenceItem(**m); + m_ReferencedSOPSequence.push_back(item); + m++; + } + +} + + +ContentItemMacro::~ContentItemMacro() +{ + DcmIODUtil::freeContainer(m_ConceptNameCodeSequence); + DcmIODUtil::freeContainer(m_ConceptCodeSequence); + DcmIODUtil::freeContainer(m_MeasurementUnitsCodeSequence); + DcmIODUtil::freeContainer(m_ReferencedSOPSequence); +} + + +OFString ContentItemMacro::getName() const +{ + return m_ModuleName; +} + + +void ContentItemMacro::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_ValueType, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ConceptNameCodeSequence, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_DateTime, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_Date, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_Time, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_PersonName, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_UID, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_TextValue, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ConceptCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_NumericValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_FloatingPointValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_RationalNumeratorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_RationalDenominatorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ReferencedSOPSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); +} + + +OFCondition ContentItemMacro::read(DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + DcmIODUtil::readSubSequence(source, DCM_ConceptNameCodeSequence, m_ConceptNameCodeSequence, m_Rules->getByTag(DCM_ConceptNameCodeSequence)); + DcmIODUtil::readSubSequence(source, DCM_ConceptCodeSequence, m_ConceptCodeSequence, m_Rules->getByTag(DCM_ConceptCodeSequence)); + DcmIODUtil::readSubSequence(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCodeSequence, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence)); + DcmIODUtil::readSubSequence(source, DCM_ReferencedSOPSequence, m_ReferencedSOPSequence, m_Rules->getByTag(DCM_ReferencedSOPSequence)); + + return EC_Normal; +} + + +OFCondition ContentItemMacro::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + if(CodeSequenceMacro* pConceptNameCodeSequence = getConceptNameCodeSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ConceptNameCodeSequence, *pConceptNameCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptNameCodeSequence)); + if(CodeSequenceMacro* pConceptCodeSequence = getConceptCodeSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ConceptCodeSequence, *pConceptCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptCodeSequence)); + if(CodeSequenceMacro* pMeasurementUnitsCodeSequence = getMeasurementUnitsCodeSequence()) + DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, *pMeasurementUnitsCodeSequence, *m_Item, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence)); + if(ReferencedSOPSequenceItem* pReferencedSOPSequence = getReferencedSOPSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ReferencedSOPSequence, *pReferencedSOPSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedSOPSequence)); + + if (result.good()) + { + result = IODComponent::write(destination); + } + + return result; +} + + +OFCondition ContentItemMacro::getValueType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getValueType(ValueType& value) const +{ + OFString str; + OFCondition result = DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, str, 0); + if (result == EC_Normal) + { + if (!str.empty()) + { + if (str == "DATE") + value = VT_DATE; + else if (str == "TIME") + value = VT_TIME; + else if (str == "DATETIME") + value = VT_DATETIME; + else if (str == "PNAME") + value = VT_PNAME; + else if (str == "UIDREF") + value = VT_UIDREF; + else if (str == "TEXT") + value = VT_TEXT; + else if (str == "CODE") + value = VT_CODE; + else if (str == "NUMERIC") + value = VT_NUMERIC; + else if (str == "COMPOSITE") + value = VT_COMPOSITE; + else if (str == "IMAGE") + value = VT_IMAGE; + else + value = VT_UNKNOWN; + } + else + { + value = VT_EMPTY; + } + } + else if (result == EC_TagNotFound) + { + value = VT_EMPTY; + } + else + { + DCMIOD_ERROR("Unexpected error, could not get Value Type: " << result.text()); + value = VT_UNKNOWN; + } + return result; +} + + +CodeSequenceMacro* ContentItemMacro::getConceptNameCodeSequence() +{ + return m_ConceptNameCodeSequence.empty() ? OFnullptr : *m_ConceptNameCodeSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireConceptNameCodeSequence() +{ + return m_ConceptNameCodeSequence; +} + + +OFCondition ContentItemMacro::getDateTime(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_DateTime, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getDate(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_Date, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getTime(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_Time, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getPersonName(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_PersonName, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getUID(OFString &value, + const signed long pos) const +{ + return m_Item->findAndGetOFString(DCM_UID, value, pos); +} + + +OFCondition ContentItemMacro::getTextValue(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_TextValue, *m_Item, value, pos); +} + + +CodeSequenceMacro* ContentItemMacro::getConceptCodeSequence() +{ + return m_ConceptCodeSequence.empty() ? OFnullptr : *m_ConceptCodeSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireConceptCodeSequence() +{ + return m_ConceptCodeSequence; +} + + +OFCondition ContentItemMacro::getNumericValue(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_NumericValue, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getFloatingPointValue(Float64 &value, + const signed long pos) const +{ + return m_Item->findAndGetFloat64(DCM_FloatingPointValue, value, pos); +} + + +OFCondition ContentItemMacro::getRationalNumeratorValue(Sint32 &value, + const signed long pos) const +{ + return m_Item->findAndGetSint32(DCM_RationalNumeratorValue, value, pos); +} + + +OFCondition ContentItemMacro::getRationalDenominatorValue(Uint32 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint32(DCM_RationalDenominatorValue, value, pos); +} + + +CodeSequenceMacro* ContentItemMacro::getMeasurementUnitsCodeSequence() +{ + return m_MeasurementUnitsCodeSequence.empty() ? OFnullptr : *m_MeasurementUnitsCodeSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireMeasurementUnitsCodeSequence() +{ + return m_MeasurementUnitsCodeSequence; +} + + +ContentItemMacro::ReferencedSOPSequenceItem* ContentItemMacro::getReferencedSOPSequence() +{ + return m_ReferencedSOPSequence.empty() ? OFnullptr : *m_ReferencedSOPSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireReferencedSOPSequence() +{ + return m_ReferencedSOPSequence; +} + + +OFCondition ContentItemMacro::setValueType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, value); + return result; +} + + +OFCondition ContentItemMacro::setValueType(const ContentItemMacro::ValueType value, + const OFBool checkValue) +{ + (void)checkValue; + OFCondition result; + switch (value) + { + case VT_DATE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATE"); + break; + } + case VT_TIME: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TIME"); + break; + } + case VT_DATETIME: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATETIME"); + break; + } + case VT_PNAME: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "PNAME"); + break; + } + case VT_UIDREF: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "UIDREF"); + break; + } + case VT_TEXT: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TEXT"); + break; + } + case VT_CODE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "CODE"); + break; + } + case VT_NUMERIC: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "NUMERIC"); + break; + } + case VT_COMPOSITE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "COMPOSITE"); + break; + } + case VT_IMAGE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "IMAGE"); + break; + } + default: + { + result = IOD_EC_InvalidElementValue; + } + } + return result; +} + + + +OFCondition ContentItemMacro::setDateTime(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_DateTime, value); + return result; +} + + +OFCondition ContentItemMacro::setDate(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_Date, value); + return result; +} + + +OFCondition ContentItemMacro::setTime(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_Time, value); + return result; +} + + +OFCondition ContentItemMacro::setPersonName(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_PersonName, value); + return result; +} + + +OFCondition ContentItemMacro::setUID(const OFString &value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertOFStringArray(DCM_UID, value); +} + + +OFCondition ContentItemMacro::setTextValue(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_TextValue, value); + return result; +} + + +OFCondition ContentItemMacro::setNumericValue(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_NumericValue, value); + return result; +} + + +OFCondition ContentItemMacro::setFloatingPointValue(const Float64 value, + const unsigned long pos, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat64(DCM_FloatingPointValue, value, pos); +} + + +OFCondition ContentItemMacro::setRationalNumeratorValue(const Sint32 value, + const unsigned long pos, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertSint32(DCM_RationalNumeratorValue, value, pos); +} + + +OFCondition ContentItemMacro::setRationalDenominatorValue(const Uint32 value, + const unsigned long pos, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint32(DCM_RationalDenominatorValue, value, pos); +} + + +OFString ContentItemMacro::toString() +{ + ValueType vt; + getValueType(vt); + OFStringStream oss; + if (getConceptNameCodeSequence()) + { + oss << getConceptNameCodeSequence()->toString() << ": "; + } + else + { + oss << ": "; + } + switch (vt) + { + case VT_CODE: + oss << "CODE: " << getConceptCodeSequence()->toString(); + break; + case VT_COMPOSITE: + { + OFString sopClass, sopInstance, frameNumber; + if (getReferencedSOPSequence()) + { + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass); + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance); + getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber); + oss << "COMPOSITE: " << sopClass << " / " << sopInstance; + if (!frameNumber.empty()) + { + oss << " / Frames: " << frameNumber; + } + Uint16 val,pos; + val = pos = 0; + if (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good()) + { + oss << " / Segments: "; + while (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good()) + { + oss << val << " "; + pos++; + } + } + } + else + { + oss << "COMPOSITE: "; + } + break; + } + case VT_DATE: + { + OFString date; + getDate(date); + oss << "DATE: " << date; + break; + } + case VT_DATETIME: + { + OFString datetime; + getDateTime(datetime); + oss << "DATETIME: " << datetime; + break; + } + case VT_IMAGE: + { + OFString sopClass, sopInstance, frameNumber; + if (getReferencedSOPSequence()) + { + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass); + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance); + getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber); + oss << "IMAGE: " << sopClass << " / " << sopInstance; + if (!frameNumber.empty()) + { + oss << " / Frames: " << frameNumber; + } + } + else + { + oss << "IMAGE: "; + } + break; + } + case VT_NUMERIC: + { + OFString val; + getNumericValue(val); + oss << "NUMERIC: " << val; + if (getMeasurementUnitsCodeSequence()) + { + oss << ", Units: " << getMeasurementUnitsCodeSequence()->toString() << ")"; + } + Uint16 pos =0; + Float64 fl64 = 0; + if (getFloatingPointValue(fl64, pos).good()) + { + oss << ", Float value(s): " ; + do + { + oss << val << " "; + pos++; + } while (getFloatingPointValue(fl64, pos).good()); + } + else + { + oss << ", Float value(s): "; + } + pos = 0; + Sint32 si32 = 0; + if (getRationalNumeratorValue(si32, pos).good()) + { + oss << ", Numerator value(s): " ; + do + { + oss << val << " "; + pos++; + } while (getRationalNumeratorValue(si32, pos).good()); + } + pos = 0; + Uint32 ui32 = 0; + if (getRationalDenominatorValue(ui32, pos).good()) + { + oss << ", Denominator value(s): " ; + do + { + oss << val << " "; + pos++; + } while (getRationalDenominatorValue(ui32, pos).good()); + } + + break; + } + case VT_PNAME: + { + OFString val; + getPersonName(val); + oss << "PNAME: " << val; + break; + } + case VT_TEXT: + { + OFString val; + getTextValue(val); + oss << "TEXT: " << val; + break; + } + case VT_TIME: + { + OFString val; + getTime(val); + oss << "TIME: " << val; + break; + } + case VT_UIDREF: + { + OFString val; + getUID(val); + oss << "UIDREF: " << val; + break; + } + case VT_EMPTY: + { + oss << ""; + break; + } + case VT_UNKNOWN: + { + OFString val; + getValueType(val); + oss << ""; + break; + } + default: + { + oss << ""; + } + } + OFSTRINGSTREAM_GETOFSTRING(oss, val); + return val; +} + diff --git a/dcmiod/libsrc/iodimage.cc b/dcmiod/libsrc/iodimage.cc deleted file mode 100644 index 482f7cc0..00000000 --- a/dcmiod/libsrc/iodimage.cc +++ /dev/null @@ -1,89 +0,0 @@ -/* - * - * Copyright (C) 2015, Open Connections GmbH - * All rights reserved. See COPYRIGHT file for details. - * - * This software and supporting documentation are maintained by - * - * OFFIS e.V. - * R&D Division Health - * Escherweg 2 - * D-26121 Oldenburg, Germany - * - * - * Module: dcmiod - * - * Author: Michael Onken - * - * Purpose: Class repres. image IOD by exposing common image IOD attributes - * - */ - -#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ -#include "dcmtk/dcmiod/iodimage.h" -#include "dcmtk/dcmiod/iodutil.h" - -DcmIODImage::DcmIODImage() -: m_GeneralImage(getData(), getRules()), - m_ImagePixel(getData(), getRules()) -{ - // Nothing to do -} - - -IODGeneralImageModule& DcmIODImage::getGeneralImage() -{ - return m_GeneralImage; -} - - -IODImagePixelModule& DcmIODImage::getImagePixel() -{ - return m_ImagePixel; -} - - -DcmIODImage::~DcmIODImage() -{ - // IOD rules created in DcmIODImage are cleared in DcmIODCommon::~DcmIODCommon() -} - - -void DcmIODImage::clearData() -{ - // clear all attributes from base classes - DcmIODCommon::clearData(); - m_GeneralImage.clearData(); - m_ImagePixel.clearData(); -} - - -OFCondition DcmIODImage::read(DcmItem &dataset) -{ - // re-initialize object - DcmIODImage::clearData(); - - // read from base classes - DcmIODCommon::read(dataset); - m_GeneralImage.read(dataset, OFTrue /* clear old data */); - m_ImagePixel.read(dataset, OFTrue /* clear old data */); - - return EC_Normal; -} - - -OFCondition DcmIODImage::write(DcmItem &dataset) -{ - OFCondition result = EC_Normal; - - // Write base class attributes to dataset - result = DcmIODCommon::write(dataset); - - // Write extra modules to dataset - if (result.good()) - result = m_GeneralImage.write(dataset); - if (result.good()) - result = m_ImagePixel.write(dataset); - - return result; -} diff --git a/dcmiod/libsrc/iodmacro.cc b/dcmiod/libsrc/iodmacro.cc index c95174ca..4386202c 100644 --- a/dcmiod/libsrc/iodmacro.cc +++ b/dcmiod/libsrc/iodmacro.cc @@ -22,6 +22,7 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #include "dcmtk/dcmiod/iodmacro.h" #include "dcmtk/dcmiod/iodutil.h" // for static IOD helpers +#include "dcmtk/ofstd/ofstream.h" // --------------------------- Code Sequence Macro --------------------------- @@ -144,6 +145,30 @@ OFCondition CodeSequenceMacro::getCodeMeaning(OFString &value, } +OFBool CodeSequenceMacro::empty() +{ + OFString val; + getCodeValue(val); + if (val.empty()) + { + getCodingSchemeDesignator(val); + if (val.empty()) + { + getCodingSchemeVersion(val); + if (val.empty()) + { + getCodingSchemeDesignator(val); + if (val.empty()) + { + return OFTrue; + } + } + } + } + return OFFalse; +} + + // -- set dicom attributes -- OFCondition CodeSequenceMacro::setCodeValue(const OFString &value, @@ -204,6 +229,7 @@ OFCondition CodeSequenceMacro::set(const OFString& value, return result; } + // ---------------------- CodeWithModifiers---------------------- CodeWithModifiers::CodeWithModifiers(const OFString& modifierType, @@ -265,7 +291,10 @@ OFCondition CodeWithModifiers::check(const OFBool quiet) } if (result.bad()) { - DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers"); + if (!quiet) + { + DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers"); + } } return result; } @@ -368,6 +397,20 @@ CodeWithModifiers::~CodeWithModifiers() } +OFString CodeSequenceMacro::toString() +{ + OFString d,m,v; + getCodeValue(v); + getCodeMeaning(m); + getCodingSchemeDesignator(d); + OFStringStream oss; + oss << "(" << d << "," << v << "," << m << ")"; + OFSTRINGSTREAM_GETOFSTRING(oss, msg); + return msg; + +} + + // ---------------------- SeriesAndInstanceReferenceMacro---------------------- const OFString IODSeriesAndInstanceReferenceMacro::m_ComponentName = "SeriesAndInstanceReferenceMacro"; @@ -689,8 +732,7 @@ OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID, OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID, const OFString& sopInstanceUID, const OFVector< Uint16 >& refFramesOrSegments, - ImageSOPInstanceReferenceMacro*& result - ) + ImageSOPInstanceReferenceMacro*& result) { OFCondition cond = create(sopClassUID, sopInstanceUID, result); if (cond.good()) @@ -828,7 +870,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const OFString& type) : m_Type(type), m_AnatomicRegion(), m_AnatomicRegionModifier(), - m_PrimaryAnatomicStructure() + m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence) { m_Type = type; } @@ -838,12 +880,19 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs) : m_Type(rhs.m_Type), m_AnatomicRegion(), m_AnatomicRegionModifier(), - m_PrimaryAnatomicStructure() + m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence) +{ + *this = rhs; +} + + +GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs) { if (this != &rhs) { + clearData(); m_Type = rhs.m_Type; - m_AnatomicRegion = m_AnatomicRegion; + m_AnatomicRegion = rhs.m_AnatomicRegion; m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure; OFVector::const_iterator it = rhs.m_AnatomicRegionModifier.begin(); @@ -853,6 +902,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs) it++; } } + return *this; } @@ -884,7 +934,12 @@ OFCondition GeneralAnatomyMacro::check(const OFBool quiet) if (result.bad()) return result; it++; } - result = m_PrimaryAnatomicStructure.check(quiet); + // Primary Anatomic Structure is optional (type 3), so only check if + // user intended to fill in something. + if (!m_PrimaryAnatomicStructure.empty()) + { + result = m_PrimaryAnatomicStructure.check(quiet); + } return result; } @@ -920,7 +975,10 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source, /* read Anatomic Region Sequence item into Code Sequence Macro */ DcmIODUtil::readSingleItem(source, DCM_AnatomicRegionSequence, m_AnatomicRegion, m_Type, "GeneralAnatomyMacro"); - /* Get the single item from Anatomic Region Sequence */ + /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */ + DcmIODUtil::readSingleItem(source, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, "3", "GeneralAnatomyMacro"); + + /* Get the single item from Anatomic Region Sequence and read modifier if found */ DcmItem* localItem = NULL; if ( source.findAndGetSequenceItem(DCM_AnatomicRegionSequence, localItem).bad() ) { @@ -936,9 +994,6 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source, "3", "GeneralAnatomyMacro" ); - /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */ - m_PrimaryAnatomicStructure.read(source); - return result; } @@ -950,295 +1005,60 @@ OFCondition GeneralAnatomyMacro::write(DcmItem& item) /* delete old data */ item.findAndDeleteElement(DCM_AnatomicRegionSequence); + item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence); /* Write sub structures */ DcmIODUtil::writeSingleItem(result, DCM_AnatomicRegionSequence, m_AnatomicRegion, item, m_Type, "GeneralAnatomyMacro"); - DcmIODUtil::writeSubSequence > - ( result, - DCM_AnatomicRegionModifierSequence, - m_AnatomicRegionModifier, - item, - "1-n", - "3", - "GeneralAnatomyMacro"); - return result; -} - - -GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs) -{ - if (this != &rhs) + if (result.good()) { - clearData(); - m_Type = rhs.m_Type; - m_AnatomicRegion = rhs.m_AnatomicRegion; - m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure; - - OFVector::const_iterator it = rhs.m_AnatomicRegionModifier.begin(); - while ( it != rhs.m_AnatomicRegionModifier.end() ) + DcmItem* seqItem = NULL; + result = item.findAndGetSequenceItem(DCM_AnatomicRegionSequence, seqItem, 0); + if (result.good()) { - m_AnatomicRegionModifier.push_back( new CodeSequenceMacro(**it) ); - it++; + DcmIODUtil::writeSubSequence > + ( result, + DCM_AnatomicRegionModifierSequence, + m_AnatomicRegionModifier, + *seqItem, + "1-n", + "3", + "GeneralAnatomyMacro"); } } - return *this; -} - - -// ---------------------- PrimaryAnatomicStructureMacroItem ------------------ - -PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem() : - m_AnatomicStructure(), - m_AnatomicStructureModifier() -{ + DcmIODUtil::writeSingleItem(result, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, item, "3", "GeneralAnatomyMacro"); + return result; } -PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs) : - m_AnatomicStructure(), - m_AnatomicStructureModifier() +int GeneralAnatomyMacro::compare(const GeneralAnatomyMacro& rhs) const { - if (this != &rhs) + int result = m_AnatomicRegion.compare(rhs.m_AnatomicRegion); + if (result == 0) { - m_AnatomicStructure = rhs.m_AnatomicStructure; - OFVector::const_iterator it = rhs.m_AnatomicStructureModifier.begin(); - while ( it != rhs.m_AnatomicStructureModifier.begin() ) + if (m_AnatomicRegionModifier.size() > rhs.m_AnatomicRegionModifier.size()) { - m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it)); - it++; + return 1; } - } -} - - -PrimaryAnatomicStructureMacroItem& PrimaryAnatomicStructureMacroItem::operator=(const PrimaryAnatomicStructureMacroItem& rhs) -{ - if (this != &rhs) - { - clearData(); - m_AnatomicStructure = rhs.m_AnatomicStructure; - OFVector::const_iterator it = rhs.m_AnatomicStructureModifier.begin(); - while ( it != rhs.m_AnatomicStructureModifier.begin() ) + else if (m_AnatomicRegionModifier.size() < rhs.m_AnatomicRegionModifier.size()) { - m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it)); - it++; + return -1; } - } - return *this; -} - - -PrimaryAnatomicStructureMacroItem::~PrimaryAnatomicStructureMacroItem() -{ - clearData(); -} - - -void PrimaryAnatomicStructureMacroItem::clearData() -{ - m_AnatomicStructure.clearData(); - m_AnatomicStructureModifier.clear(); - DcmIODUtil::freeContainer(m_AnatomicStructureModifier); -} - - -OFCondition PrimaryAnatomicStructureMacroItem::check(const OFBool quiet) -{ - OFCondition result = m_AnatomicStructure.check(); - if (result.bad()) return result; - - OFVector::iterator it = m_AnatomicStructureModifier.begin(); - while (it != m_AnatomicStructureModifier.end()) - { - result = (*it)->check(quiet); - if (result.bad()) - return result; - it++; - } - return result; -} - - - -CodeSequenceMacro& PrimaryAnatomicStructureMacroItem::getAnatomicStructure() -{ - return m_AnatomicStructure; -} - - -OFVector& PrimaryAnatomicStructureMacroItem::getAnatomicStructureModifier() -{ - return m_AnatomicStructureModifier; -} - -OFCondition PrimaryAnatomicStructureMacroItem::read(DcmItem& source, - const OFBool clearOldData) -{ - OFCondition result = EC_Normal; - - /* re-initialize object */ - if (clearOldData) - clearData(); - - m_AnatomicStructure.read(source); - - /* check whether cardinality of Primary Anatomic Structure Modifier Sequence and type is ok (produces warnings if not) */ - DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureModifierSequence, "1-n", "3", "PrimaryAnatomicStructureMacro"); - - /* read Primary Anatomic Structure Modifier Sequence */ - DcmIODUtil::readSubSequence > - ( source, /* item of Primary Anatomic Structure Sequence */ - DCM_PrimaryAnatomicStructureModifierSequence, - m_AnatomicStructureModifier, - "1-n", - "3", - "GeneralAnatomyMacro" ); - - return result; -} - - -/// Write Primary Anatomic Structure Sequence Item to given item -OFCondition PrimaryAnatomicStructureMacroItem::write(DcmItem& source) -{ - OFCondition result; - m_AnatomicStructure.write(source); - DcmIODUtil::writeSubSequence > - ( - result, - DCM_PrimaryAnatomicStructureModifierSequence, - m_AnatomicStructureModifier, - source, - "1-n", - "3", - "PrimaryAnatomicStructureMacro" - ); - return result; -} - - -// ---------------------- PrimaryAnatomicStructureMacro ---------------------- - - -PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro() : - m_PrimaryAnatomicStructure() -{ - -} - - -PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs) -{ - if (this != &rhs) - { - OFVector::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin(); - while ( it != rhs.m_PrimaryAnatomicStructure.begin() ) + for (size_t m = 0; m < m_AnatomicRegionModifier.size(); m++) { - m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it)); - it++; + rhs.m_AnatomicRegionModifier[m]; + result = m_AnatomicRegionModifier[m]->compare( *(rhs.m_AnatomicRegionModifier[m]) ); + if (result != 0) + { + return result; + } } + result = m_PrimaryAnatomicStructure.compare(rhs.m_PrimaryAnatomicStructure); } -} - - -PrimaryAnatomicStructureMacro::~PrimaryAnatomicStructureMacro() -{ - clearData(); -} - - -void PrimaryAnatomicStructureMacro::clearData() -{ - m_PrimaryAnatomicStructure.clear(); -} - - -OFCondition PrimaryAnatomicStructureMacro::check(const OFBool quiet) -{ - OFCondition result; - OFVector::iterator it = m_PrimaryAnatomicStructure.begin(); - while (it != m_PrimaryAnatomicStructure.end()) - { - result = (*it)->check(quiet); - if (result.bad()) return result; - it++; - } - return result; -} - - -OFVector& PrimaryAnatomicStructureMacro::getPrimaryAnatomicStructure() -{ - return m_PrimaryAnatomicStructure; -} - - -/// Reads Primary Anatomic Region Sequence from given item -OFCondition PrimaryAnatomicStructureMacro::read(DcmItem& source, - const OFBool clearOldData) -{ - OFCondition result; - - if (clearOldData) - clearData(); - - // check for sequence and report warnings if not ok */ - DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureSequence, "1-n", "3", "PrimaryAnantomicStructureMacro"); - - // read sequence into member - DcmIODUtil::readSubSequence > - ( source, - DCM_PrimaryAnatomicStructureSequence, - m_PrimaryAnatomicStructure, - "1-n", - "3", - "PrimaryAnatomicStructureMacro" - ); - return result; -} - - -/// Write Anatomic Region Sequence from given item -OFCondition PrimaryAnatomicStructureMacro::write(DcmItem& item) -{ - OFCondition result = EC_Normal; - - /* delete old data */ - item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence); - item.insertEmptyElement(DCM_PrimaryAnatomicStructureSequence); - - DcmIODUtil::writeSubSequence > - ( - result, - DCM_PrimaryAnatomicStructureSequence, - m_PrimaryAnatomicStructure, - item, - "1-n", - "3", - "PrimaryAnatomicStructureMacro" - ); - return result; } -PrimaryAnatomicStructureMacro& PrimaryAnatomicStructureMacro::operator=(const PrimaryAnatomicStructureMacro& rhs) -{ - if (this != &rhs) - { - clearData(); - OFVector::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin(); - while ( it != rhs.m_PrimaryAnatomicStructure.begin() ) - { - m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it)); - it++; - } - } - return *this; -} - - // ---------------------- AlgorithmIdentificationMacro ---------------------- diff --git a/dcmiod/libsrc/iodutil.cc b/dcmiod/libsrc/iodutil.cc index 78e95d10..4e6e507a 100644 --- a/dcmiod/libsrc/iodutil.cc +++ b/dcmiod/libsrc/iodutil.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -163,7 +163,7 @@ OFCondition DcmIODUtil::addElementToDataset(OFCondition &result, { if (type == "2") { - delem = newDicomElement(rule->getTagKey()); + delem = DcmItem::newDicomElement(rule->getTagKey()); if (delem == NULL) { result = EC_MemoryExhausted; @@ -493,7 +493,7 @@ OFCondition DcmIODUtil::checkSOPClass(DcmItem* item, OFString& valueFound) { valueFound.clear(); - if ( (item == NULL) && (item->card() == 0) ) + if ( (item == NULL) || (item->card() == 0) ) { DCMIOD_TRACE("Cannot check SOP Class UID: Dataset not present or empty"); return EC_IllegalParameter; @@ -510,7 +510,6 @@ OFCondition DcmIODUtil::checkSOPClass(DcmItem* item, return EC_InvalidValue; } return EC_Normal; - } @@ -575,3 +574,15 @@ OFString DcmIODUtil::createUID(const Uint8 level) } return uid; } + + +Uint16 DcmIODUtil::limitMaxFrames(const size_t numFramesPresent, + const OFString& warning) +{ + if (numFramesPresent > 65535) + { + DCMIOD_WARN(warning); + return 65535; + } + return OFstatic_cast(Uint16, numFramesPresent); +} diff --git a/dcmiod/libsrc/modbase.cc b/dcmiod/libsrc/modbase.cc index 43686747..27943f0d 100644 --- a/dcmiod/libsrc/modbase.cc +++ b/dcmiod/libsrc/modbase.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -27,6 +27,15 @@ #include "dcmtk/dcmdata/dcdeftag.h" +IODComponent::IODComponent(const IODComponent& rhs) +: m_Item(OFstatic_cast(DcmItem*, rhs.m_Item->clone())) +, m_Rules(rhs.m_Rules->clone()) +, m_Parent(OFnullptr) +{ + +} + + IODComponent::IODComponent(OFshared_ptr item, OFshared_ptr rules, IODComponent* parent) @@ -62,24 +71,14 @@ IODComponent& IODComponent::operator=(const IODComponent& rhs) { if (&rhs != this) { - m_Rules.reset( rhs.m_Rules->clone() ); - m_Item.reset( OFstatic_cast(DcmItem*, rhs.m_Item->clone()) ); - m_Parent = NULL; + m_Item.reset(OFstatic_cast(DcmItem*, rhs.m_Item->clone())); + m_Rules.reset(rhs.m_Rules->clone()); + m_Parent = OFnullptr; } return *this; } -IODComponent::IODComponent(const IODComponent& rhs) -{ - - if (this == &rhs) - return; - - *this = rhs; -} - - void IODComponent::inventMissing() { // Try to fill in missing type 1 information @@ -95,7 +94,7 @@ void IODComponent::inventMissing() DcmElement *elem = NULL; if ( getData().findAndGetElement( (*rule)->getTagKey(), elem ).bad() ) { - elem = newDicomElement((*rule)->getTagKey()); + elem = DcmItem::newDicomElement((*rule)->getTagKey()); if (elem == NULL) { DCMIOD_ERROR("Could not allocate element " << (*rule)->getTagKey()); @@ -212,8 +211,8 @@ OFCondition IODComponent::read(DcmItem& source, if (isSequence) { DcmElement *elem = NULL; - source.findAndGetElement( (*rule)->getTagKey(), elem); - DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), EC_Normal, (*rule)->getModule().c_str()); + OFCondition cond = source.findAndGetElement( (*rule)->getTagKey(), elem); + DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), cond, (*rule)->getModule().c_str()); } else // Normal attributes are checked and copied over into this IOD component { @@ -265,9 +264,28 @@ IODModule::IODModule(): IODComponent() } +IODModule::IODModule(const IODModule& rhs) +: IODComponent(rhs.m_Item, rhs.m_Rules, rhs.m_Parent) +{ + +} + + IODModule::IODModule(OFshared_ptr< DcmItem > item, OFshared_ptr< IODRules > rules) : IODComponent(item, rules, NULL /* No parent for modules */) { // nothing to do, IODComponent does the work } + + +IODModule& IODModule::operator=(const IODModule& rhs) +{ + if (this != &rhs) + { + m_Item = rhs.m_Item; + m_Rules = rhs.m_Rules; + m_Parent = rhs.m_Parent; + } + return *this; +} diff --git a/dcmiod/libsrc/modcommoninstanceref.cc b/dcmiod/libsrc/modcommoninstanceref.cc index 921e9fb3..246b15ec 100644 --- a/dcmiod/libsrc/modcommoninstanceref.cc +++ b/dcmiod/libsrc/modcommoninstanceref.cc @@ -45,7 +45,7 @@ IODCommonInstanceReferenceModule::IODCommonInstanceReferenceModule() IODCommonInstanceReferenceModule::~IODCommonInstanceReferenceModule() { - clearData(); + freeMemory(); } @@ -69,12 +69,10 @@ OFVector & IODCom void IODCommonInstanceReferenceModule::clearData() { - DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence); - DcmIODUtil::freeContainer(m_ReferenceSeriesItems); + freeMemory(); } - OFCondition IODCommonInstanceReferenceModule::read(DcmItem& source, const OFBool clearOldData) { @@ -204,7 +202,6 @@ void IODCommonInstanceReferenceModule::resetRules() } - OFCondition IODCommonInstanceReferenceModule::addSeriesReference( OFVector& container, const IODReference& ref) @@ -348,3 +345,10 @@ OFCondition IODCommonInstanceReferenceModule::StudiesOtherInstancesItem::setStud result = m_Item->putAndInsertOFStringArray(DCM_StudyInstanceUID, value); return result; } + + +void IODCommonInstanceReferenceModule::freeMemory() +{ + DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence); + DcmIODUtil::freeContainer(m_ReferenceSeriesItems); +} \ No newline at end of file diff --git a/dcmiod/libsrc/modenhequipment.cc b/dcmiod/libsrc/modenhequipment.cc index 6801c84a..dcd71f4c 100644 --- a/dcmiod/libsrc/modenhequipment.cc +++ b/dcmiod/libsrc/modenhequipment.cc @@ -58,16 +58,16 @@ OFCondition IODEnhGeneralEquipmentModule::create(const IODEnhGeneralEquipmentMod void IODEnhGeneralEquipmentModule::resetRules() { - m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); } IODEnhGeneralEquipmentModule::~IODEnhGeneralEquipmentModule() { - clearData(); + // Nothing to do } diff --git a/dcmiod/libsrc/modenhusimage.cc b/dcmiod/libsrc/modenhusimage.cc index 9fdf4ac1..7cb42a78 100644 --- a/dcmiod/libsrc/modenhusimage.cc +++ b/dcmiod/libsrc/modenhusimage.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -637,7 +637,7 @@ OFCondition IODEnhUSImageModule::setDepthsOfFocus(const OFVector< Float64 >& val const bool checkValue) { (void)checkValue; - DcmElement* elem = newDicomElement(DCM_DepthsOfFocus); + DcmElement* elem = DcmItem::newDicomElement(DCM_DepthsOfFocus); if (!elem) return EC_MemoryExhausted; diff --git a/dcmiod/libsrc/modequipment.cc b/dcmiod/libsrc/modequipment.cc index 0d2abeb4..ade432db 100644 --- a/dcmiod/libsrc/modequipment.cc +++ b/dcmiod/libsrc/modequipment.cc @@ -48,20 +48,19 @@ void IODGeneralEquipmentModule::resetRules() { // parameters are tag, VM, type. Overwrite old rules if any. - m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_InstitutionName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_StationName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "2", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_InstitutionName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_StationName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); } IODGeneralEquipmentModule::~IODGeneralEquipmentModule() { - clearData(); } diff --git a/dcmiod/libsrc/modfloatingpointimagepixel.cc b/dcmiod/libsrc/modfloatingpointimagepixel.cc new file mode 100644 index 00000000..d5e1494e --- /dev/null +++ b/dcmiod/libsrc/modfloatingpointimagepixel.cc @@ -0,0 +1,260 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Floating Point and Double Floating Point Image Pixel Module + * + */ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmiod/modfloatingpointimagepixel.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrfl.h" +#include "dcmtk/dcmdata/dcvrfd.h" +#include "dcmtk/dcmiod/iodutil.h" + +const OFString IODFloatingPointImagePixelModule::m_ModuleName = "FloatingPointImagePixelModule"; +const DcmTagKey IODFloatingPointImagePixelModule::pixel_data_tag = DCM_FloatPixelData; +const DcmTagKey IODDoubleFloatingPointImagePixelModule::pixel_data_tag = DCM_DoubleFloatPixelData; + + +IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules) +: IODImagePixelBase(item, rules) +{ + // reset element rules + resetRules(); + getData().putAndInsertUint16(DCM_BitsAllocated, 32); + getData().putAndInsertUint16(DCM_SamplesPerPixel, 1); + getData().putAndInsertUint16(DCM_PixelRepresentation, 1); + getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); +} + + +OFString IODFloatingPointImagePixelModule::getName() const +{ + return m_ModuleName; +} + + +IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule() +: IODImagePixelBase() +{ + resetRules(); +} + + +IODFloatingPointImagePixelModule::~IODFloatingPointImagePixelModule() +{ + // nothing to do +} + + +void IODFloatingPointImagePixelModule::resetRules() +{ + // Parameters this module is responsible for. + m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); +} + + +OFCondition IODFloatingPointImagePixelModule::read(DcmItem& source, + const OFBool clearOldData) +{ + // Read common attributes + IODImagePixelBase::read(source, clearOldData); + // Read extra attributes of Floating Point Image Pixel Module + IODModule::read(source, clearOldData); + return EC_Normal; +} + + +OFCondition IODFloatingPointImagePixelModule::write(DcmItem& destination) +{ + // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module + OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); + // Write common attributes + if (result.good()) + { + result = IODImagePixelBase::write(destination); + } + // Write extra attributes of Floating Poing Image Pixel Module + if (result.good()) + { + result = IODModule::write(destination); + } + return result; +} + + +IODImagePixelBase::DataType IODFloatingPointImagePixelModule::getDataType() const +{ + return IODImagePixelBase::DATA_TYPE_FLOAT; +} + + +OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingValue(Float32& value, + const long pos) +{ + return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingValue, value, pos); +} + + +OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingRangeLimit(Float32& value, + const long pos) +{ + return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingRangeLimit, value, pos); +} + + +OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingValue(const Float32 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingValue, value); +} + + +OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingRangeLimit(const Float32 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingRangeLimit, value); +} + +// ---------------- Double Floating Point Image Pixel Module ------------------ + +const OFString IODDoubleFloatingPointImagePixelModule::m_ModuleName = "DoubleFloatingPointImagePixelModule"; + + +IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules) +: IODImagePixelBase(item, rules) +{ + // reset element rules + resetRules(); + + getData().putAndInsertUint16(DCM_BitsAllocated, 64); + getData().putAndInsertUint16(DCM_SamplesPerPixel, 1); + getData().putAndInsertUint16(DCM_PixelRepresentation, 1); + getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); +} + + +OFString IODDoubleFloatingPointImagePixelModule::getName() const +{ + return m_ModuleName; +} + + +IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule() +: IODImagePixelBase() +{ + resetRules(); +} + + +IODDoubleFloatingPointImagePixelModule::~IODDoubleFloatingPointImagePixelModule() +{ + // nothing to do +} + + +void IODDoubleFloatingPointImagePixelModule::resetRules() +{ + // Parameters are tag, VM, type. Overwrite old rules if any. + // Take over responsibility for Photometric Interpretation since we want to write + // "MONOCHROME2" as a fixed value. + m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE, "MONOCHROME2"), OFTrue); + m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::read(DcmItem& source, + const OFBool clearOldData) +{ + // Read common attributes + IODImagePixelBase::read(source, clearOldData); + // Read extra attributes of Floating Point Image Pixel Module + IODModule::read(source, clearOldData); + return EC_Normal; +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::write(DcmItem& destination) +{ + // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module + OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); + // Write common attributes + if (result.good()) + { + result = IODImagePixelBase::write(destination); + } + // Write extra attributes of Floating Poing Image Pixel Module + if (result.good()) + { + result = IODModule::write(destination); + } + return result; +} + + +IODImagePixelBase::DataType IODDoubleFloatingPointImagePixelModule::getDataType() const +{ + return IODImagePixelBase::DATA_TYPE_DOUBLE; +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingValue(Float64& value, + const long pos) +{ + return m_Item->findAndGetFloat64(DCM_FloatPixelPaddingValue, value, pos); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingRangeLimit(Float64& value, + const long pos) +{ + return m_Item->findAndGetFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value, pos); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingValue(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingValue, value); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingRangeLimit(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value); +} diff --git a/dcmiod/libsrc/modfor.cc b/dcmiod/libsrc/modfor.cc index 3ca984d6..3e331666 100644 --- a/dcmiod/libsrc/modfor.cc +++ b/dcmiod/libsrc/modfor.cc @@ -61,8 +61,7 @@ OFString IODFoRModule::getName() const IODFoRModule::~IODFoRModule() { - // clear rules from rule set - clearData(); + // Nothing to do } @@ -80,7 +79,6 @@ OFCondition IODFoRModule::getPositionReferenceIndicator(OFString& value, } - OFCondition IODFoRModule::setFrameOfReferenceUID(const OFString &value, const OFBool checkValue) { @@ -100,3 +98,22 @@ OFCondition IODFoRModule::setPositionReferenceIndicator(const OFString &value, return result; } + +void IODFoRModule::ensureFrameOfReferenceUID(const OFBool correctInvalid) +{ + OFString uidstr; + + // Create new Frame of Reference instance UID if required + if (getFrameOfReferenceUID(uidstr).bad() || uidstr.empty() ) + { + setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */)); + } + else if (!uidstr.empty() && correctInvalid) + { + if (DcmUniqueIdentifier::checkStringValue(uidstr, "1").bad()) + { + setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */)); + } + } +} + diff --git a/dcmiod/libsrc/modimagepixel.cc b/dcmiod/libsrc/modimagepixel.cc index c2a8c583..6343c5d6 100644 --- a/dcmiod/libsrc/modimagepixel.cc +++ b/dcmiod/libsrc/modimagepixel.cc @@ -27,38 +27,46 @@ #include "dcmtk/dcmdata/dcvris.h" #include "dcmtk/dcmiod/iodutil.h" -const OFString IODImagePixelModule::m_ModuleName = "ImagePixelModule"; - - -IODImagePixelModule::IODImagePixelModule(OFshared_ptr item, - OFshared_ptr rules) -: IODModule(item, rules) +template +const OFString IODImagePixelModule::m_ModuleName = "ImagePixelModule"; +template +const DcmTagKey IODImagePixelModule::pixel_data_tag = DCM_PixelData; + +template +IODImagePixelModule::IODImagePixelModule(OFshared_ptr item, + OFshared_ptr rules) +: IODImagePixelBase(item, rules) { // reset element rules resetRules(); } - -OFString IODImagePixelModule::getName() const +template +OFString IODImagePixelModule::getName() const { return m_ModuleName; } - -IODImagePixelModule::IODImagePixelModule() -: IODModule() +template +IODImagePixelModule::IODImagePixelModule() +: IODImagePixelBase() { resetRules(); } +template +IODImagePixelModule::~IODImagePixelModule() +{ +} -void IODImagePixelModule::resetRules() +template +void IODImagePixelModule::resetRules() { // parameters are tag, VM, type. Overwrite old rules if any. m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); - m_Rules->addRule(new IODRule(DCM_Columns, "1", "1n", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_BitsStored, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_HighBit, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); @@ -68,83 +76,66 @@ void IODImagePixelModule::resetRules() m_Rules->addRule(new IODRule(DCM_ICCProfile, "1", "3", getName(), DcmIODTypes::IE_IMAGE), OFTrue); } - -IODImagePixelModule::~IODImagePixelModule() +template +OFCondition IODImagePixelModule::read(DcmItem& source, + const OFBool clearOldData) { + // Read common attributes + IODImagePixelBase::read(source, clearOldData); + // Read extra attributes of Image Pixel Module + IODModule::read(source, clearOldData); + return EC_Normal; } - -OFCondition IODImagePixelModule::getSamplesPerPixel(Uint16 &value, - const signed long pos) +template +OFCondition IODImagePixelModule::write(DcmItem& destination) { - return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos); -} - - -OFCondition IODImagePixelModule::getPhotometricInterpretation(OFString&value, - const signed long pos) -{ - return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos); -} - - -OFCondition IODImagePixelModule::getRows(Uint16& value, - const signed long pos) -{ - return m_Item->findAndGetUint16(DCM_Rows, value, pos); -} - - -OFCondition IODImagePixelModule::getColumns(Uint16& value, - const signed long pos) -{ - return m_Item->findAndGetUint16(DCM_Columns, value, pos); + // Write common attributes + OFCondition result = IODImagePixelBase::write(destination); + // Write extra attributes of Image Pixel Module + if (result.good()) + { + IODModule::write(destination); + } + return result; } - -OFCondition IODImagePixelModule::getBitsAllocated(Uint16& value, - const signed long pos) +template +IODImagePixelBase::DataType IODImagePixelModule::getDataType() const { - return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos); + return IODImagePixelBase::DATA_TYPE_INTEGER; } - -OFCondition IODImagePixelModule::getBitsStored(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getBitsStored(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_BitsStored, value, pos); } - -OFCondition IODImagePixelModule::getHighBit(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getHighBit(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_HighBit, value, pos); } - -OFCondition IODImagePixelModule::getPixelRepresentation(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getPixelRepresentation(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_PixelRepresentation, value, pos); } - -OFCondition IODImagePixelModule::getPlanarConfiguration(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getPlanarConfiguration(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_PlanarConfiguration, value, pos); } - -OFCondition IODImagePixelModule::getPixelAspectRatio(Uint16& value, - const signed long pos) -{ - return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos); -} - - -OFCondition IODImagePixelModule::getICCProfile(OFVector& values) +template +OFCondition IODImagePixelModule::getICCProfile(OFVector& values) { DcmElement* elem = NULL; OFCondition result = m_Item->findAndGetElement(DCM_ICCProfile, elem); @@ -160,8 +151,8 @@ OFCondition IODImagePixelModule::getICCProfile(OFVector& values) return EC_TagNotFound; } - -OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value, +template +OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value, const OFBool checkValue) { OFCondition result = EC_Normal; @@ -183,12 +174,11 @@ OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value, if (result.good() ) result = m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value); - // TODO: Check consistency with photometric interpretation return result; } - -OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& value, +template +OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& value, const OFBool checkValue) { OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -197,48 +187,32 @@ OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& va return result; } - -OFCondition IODImagePixelModule::setRows(const Uint16 value, - const OFBool checkValue) -{ - (void)checkValue; - return m_Item->putAndInsertUint16(DCM_Rows, value); -} - - -OFCondition IODImagePixelModule::setColumns(const Uint16 value, - const OFBool checkValue) -{ - (void)checkValue; - return m_Item->putAndInsertUint16(DCM_Columns, value); -} - - -OFCondition IODImagePixelModule::setBitsAllocated(const Uint16 value, +template +OFCondition IODImagePixelModule::setBitsAllocated(const Uint16 value, const OFBool checkValue) { (void)checkValue; return m_Item->putAndInsertUint16(DCM_BitsAllocated, value); } - -OFCondition IODImagePixelModule::setBitsStored(const Uint16 value, +template +OFCondition IODImagePixelModule::setBitsStored(const Uint16 value, const OFBool checkValue) { (void)checkValue; return m_Item->putAndInsertUint16(DCM_BitsStored, value); } - -OFCondition IODImagePixelModule::setHighBit(const Uint16 value, +template +OFCondition IODImagePixelModule::setHighBit(const Uint16 value, const OFBool checkValue) { (void)checkValue; return m_Item->putAndInsertUint16(DCM_HighBit, value); } - -OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value, +template +OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value, const OFBool checkValue) { OFCondition result = EC_Normal; @@ -257,8 +231,8 @@ OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value, return result; } - -OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value, +template +OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value, const OFBool checkValue) { OFCondition result = EC_Normal; @@ -277,26 +251,14 @@ OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value, return result; } - -OFCondition IODImagePixelModule::setPixelAspectRatio(const OFString& verticalPixelSize, - const OFString& horizontalPixelSize, - const OFBool checkValue) -{ - OFString concat = verticalPixelSize; - concat += "\\"; concat += horizontalPixelSize; - OFCondition cond; - if (checkValue) - { - cond = DcmIntegerString::checkStringValue(concat, "2"); - // check for unsignedness, too? - } - if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat); - return cond; -} - - -OFCondition IODImagePixelModule::setICCProfile(const Uint8* values, +template +OFCondition IODImagePixelModule::setICCProfile(const Uint8* values, const size_t length) { return m_Item->putAndInsertUint8Array(DCM_ICCProfile, values, length); } + +template class IODImagePixelModule; +template class IODImagePixelModule; +template class IODImagePixelModule; +template class IODImagePixelModule; diff --git a/dcmiod/libsrc/modimagepixelbase.cc b/dcmiod/libsrc/modimagepixelbase.cc new file mode 100644 index 00000000..f35725e5 --- /dev/null +++ b/dcmiod/libsrc/modimagepixelbase.cc @@ -0,0 +1,138 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point) + * + */ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrobow.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvris.h" +#include "dcmtk/dcmiod/iodutil.h" + +const OFString IODImagePixelBase::m_ModuleName = "ImagePixelBase"; + + +IODImagePixelBase::IODImagePixelBase(OFshared_ptr item, + OFshared_ptr rules) +: IODModule(item, rules) +{ + // reset element rules + resetRules(); +} + + +OFString IODImagePixelBase::getName() const +{ + return m_ModuleName; +} + + +IODImagePixelBase::IODImagePixelBase() +: IODModule() +{ + resetRules(); +} + + +IODImagePixelBase::~IODImagePixelBase() +{ +} + + +void IODImagePixelBase::resetRules() +{ + // all rules in sub classes +} + + +OFCondition IODImagePixelBase::getSamplesPerPixel(Uint16 &value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos); +} + + +OFCondition IODImagePixelBase::getPhotometricInterpretation(OFString&value, + const signed long pos) +{ + return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos); +} + + +OFCondition IODImagePixelBase::getRows(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_Rows, value, pos); +} + + +OFCondition IODImagePixelBase::getColumns(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_Columns, value, pos); +} + + +OFCondition IODImagePixelBase::getBitsAllocated(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos); +} + + +OFCondition IODImagePixelBase::getPixelAspectRatio(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos); +} + + +OFCondition IODImagePixelBase::setRows(const Uint16 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint16(DCM_Rows, value); +} + + +OFCondition IODImagePixelBase::setColumns(const Uint16 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint16(DCM_Columns, value); +} + + +OFCondition IODImagePixelBase::setPixelAspectRatio(const OFString& verticalPixelSize, + const OFString& horizontalPixelSize, + const OFBool checkValue) +{ + OFString concat = verticalPixelSize; + concat += "\\"; concat += horizontalPixelSize; + OFCondition cond; + if (checkValue) + { + cond = DcmIntegerString::checkStringValue(concat, "2"); + // check for unsignedness, too? + } + if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat); + return cond; +} diff --git a/dcmiod/libsrc/modmultiframedimension.cc b/dcmiod/libsrc/modmultiframedimension.cc index 199dfa4a..ad8e1beb 100644 --- a/dcmiod/libsrc/modmultiframedimension.cc +++ b/dcmiod/libsrc/modmultiframedimension.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -70,23 +70,48 @@ OFCondition IODMultiframeDimensionModule::addDimensionIndex(const DcmTagKey& dim return IOD_EC_MissingAttribute; } + // Add Dimension Organization by its UID if such organization does not exist yet + OFVector::iterator it = m_DimensionOrganizationSequence.begin(); + while (it != m_DimensionOrganizationSequence.end()) + { + OFString val; + (*it)->getDimensionOrganizationUID(val); + if (val == dimensionOrganizationUID) + { + break; + } + it++; + } + OFCondition result; + if (it == m_DimensionOrganizationSequence.end()) + { + DimensionOrganizationItem* item = new DimensionOrganizationItem; + if (item == NULL) + { + return EC_MemoryExhausted; + } + result = item->setDimensionOrganizationUID(dimensionOrganizationUID); + if (result.bad()) + return result; + m_DimensionOrganizationSequence.push_back(item); + } + + // Create dimension and add it to this object DimensionIndexItem* dim = new DimensionIndexItem(); if (!dim) return EC_MemoryExhausted; - OFCondition result = dim->setDimensionOrganizationUID(dimensionOrganizationUID); + result = dim->setDimensionOrganizationUID(dimensionOrganizationUID); if (result.good()) result = dim->setFunctionalGroupPointer(functionalGroupPointer); if (result.good()) result = dim->setDimensionIndexPointer(dimensionIndexPointer); if (result.good() && !dimensionIndexPrivateCreator.empty()) dim->setDimensionIndexPrivateCreator(dimensionIndexPrivateCreator); if (result.good() && !functionalGroupPrivateCreator.empty()) dim->setFunctionalGroupPrivateCreator(functionalGroupPrivateCreator); if (result.good() && !dimensionDescriptionLabel.empty()) dim->setDimensionDescriptionLabel(dimensionDescriptionLabel); - if (result.bad()) { DCMIOD_ERROR("Could not add Dimension Index: Invalid data values"); delete dim; } - m_DimensionIndexSequence.push_back(dim); return result; @@ -501,7 +526,7 @@ OFCondition IODMultiframeDimensionModule::DimensionIndexItem::setFunctionalGroup if (value == DCM_UndefinedTagKey) return EC_IllegalParameter; - DcmAttributeTag *elem = OFstatic_cast(DcmAttributeTag*, newDicomElement(DCM_FunctionalGroupPointer)); + DcmAttributeTag *elem = OFstatic_cast(DcmAttributeTag*, DcmItem::newDicomElement(DCM_FunctionalGroupPointer)); if (elem == NULL) return EC_InternalError; @@ -533,7 +558,7 @@ OFCondition IODMultiframeDimensionModule::DimensionIndexItem::setDimensionIndexP if (value == DCM_UndefinedTagKey) return EC_IllegalParameter; - DcmAttributeTag *elem = OFstatic_cast(DcmAttributeTag*, newDicomElement(DCM_DimensionIndexPointer)); + DcmAttributeTag *elem = OFstatic_cast(DcmAttributeTag*, DcmItem::newDicomElement(DCM_DimensionIndexPointer)); if (elem == NULL) return EC_InternalError; diff --git a/dcmiod/libsrc/modmultiframefg.cc b/dcmiod/libsrc/modmultiframefg.cc index 6f324e95..4b256baa 100644 --- a/dcmiod/libsrc/modmultiframefg.cc +++ b/dcmiod/libsrc/modmultiframefg.cc @@ -115,7 +115,6 @@ OFCondition IODMultiFrameFGModule::getRepresentativeFrameNumber(Uint16& value, OFCondition IODMultiFrameFGModule::setConcatenationInfo(const IODMultiFrameFGModule::ConcatenationInfo& concatenationInfo) { - // TODO: Checks? m_ConcatenationInfo = concatenationInfo; return EC_Normal; } @@ -131,7 +130,6 @@ OFCondition IODMultiFrameFGModule::setInstanceNumber(const OFString& value, } - OFCondition IODMultiFrameFGModule::setContentDate(const OFString& value, const OFBool checkValue) { diff --git a/dcmiod/libsrc/modsynchronization.cc b/dcmiod/libsrc/modsynchronization.cc index 3aceba7e..4d496e3b 100644 --- a/dcmiod/libsrc/modsynchronization.cc +++ b/dcmiod/libsrc/modsynchronization.cc @@ -72,8 +72,6 @@ OFString IODSynchronizationModule::getName() const IODSynchronizationModule::~IODSynchronizationModule() { - // clear rules from rule set - clearData(); } @@ -152,11 +150,12 @@ OFCondition IODSynchronizationModule::setSynchronizationFrameofReferenceUID(cons OFCondition IODSynchronizationModule::setSynchronizationTrigger(const OFString &value, const OFBool checkValue) { - OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value); - // TODO: Further checks since this field has enumerated values - return result; + if (checkValue && !isValidSynchronizationTrigger(value)) + { + DCMIOD_ERROR("Synchronization Trigger does not allow value " << value << " (enumerated values)"); + return IOD_EC_InvalidElementValue; + } + return m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value); } @@ -186,11 +185,12 @@ OFCondition IODSynchronizationModule::setSynchronizationChannel(const OFPairputAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value); - // TODO: Further checks since this field has enumerated values - return result; + if (checkValue && !isValidAcquisitionTimeSynchronized(value)) + { + DCMIOD_ERROR("Acquisition Time Synchronized must only allows values 'Y' and 'N' (enumerated values)"); + return IOD_EC_InvalidElementValue; + } + return m_Item->putAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value); } @@ -207,14 +207,16 @@ OFCondition IODSynchronizationModule::setTimeSource(const OFString &value, OFCondition IODSynchronizationModule::setTimeDistributionProtocol(const OFString &value, const OFBool checkValue) { - OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value); - // TODO: Further checks since this field has enumerated values - return result; + if (checkValue && !isValidTimeDistributionProtocol(value)) + { + DCMIOD_ERROR("Time Distribution Protocol does not allow value " << value << " (enumerated values)"); + return IOD_EC_InvalidElementValue; + } + return m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value); } + OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value, const OFBool checkValue) { @@ -223,3 +225,24 @@ OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value, result = m_Item->putAndInsertOFStringArray(DCM_NTPSourceAddress, value); return result; } + + + +OFBool IODSynchronizationModule::isValidAcquisitionTimeSynchronized(const OFString& value) +{ + return ( (value == "Y") || (value == "N") ); + +} + + +OFBool IODSynchronizationModule::isValidTimeDistributionProtocol(const OFString& value) +{ + return ( (value == "NTP") || (value == "IRIG") || (value == "GPS") || (value == "SNTP") || (value == "PTP") ); +} + + +OFBool IODSynchronizationModule::isValidSynchronizationTrigger(const OFString& value) +{ + return ( (value == "SOURCE") || (value == "EXTERNAL") || (value == "PASSTHRU") || (value == "NO TRIGGER") ); +} + diff --git a/dcmiod/libsrc/modusfor.cc b/dcmiod/libsrc/modusfor.cc index 231cb610..c124ca3e 100644 --- a/dcmiod/libsrc/modusfor.cc +++ b/dcmiod/libsrc/modusfor.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -70,8 +70,7 @@ OFString IODUSFoRModule::getName() const IODUSFoRModule::~IODUSFoRModule() { - // clear rules from rule set - clearData(); + // Nothing to do } @@ -175,7 +174,7 @@ OFCondition IODUSFoRModule::setApexPosition(const Float64& xValue, const OFBool) { - DcmElement *elem = newDicomElement(DCM_ApexPosition); + DcmElement *elem = DcmItem::newDicomElement(DCM_ApexPosition); OFCondition result = elem->putFloat64(xValue, 0); @@ -209,7 +208,7 @@ OFCondition IODUSFoRModule::setVolumetoTransducerMappingMatrix(const OFVector< F OFCondition result; DcmElement* elem = NULL; - result = newDicomElement(elem, DCM_VolumeToTransducerMappingMatrix); + result = DcmItem::newDicomElement(elem, DCM_VolumeToTransducerMappingMatrix); if (result.good()) { for (size_t n = 0; result.good() && n < vm; n++) @@ -258,7 +257,7 @@ OFCondition IODUSFoRModule::setVolumeToTableMappingMatrix(const OFVector< Float6 OFCondition result; DcmElement* elem = NULL; - result = newDicomElement(elem, DCM_VolumeToTableMappingMatrix); + result = DcmItem::newDicomElement(elem, DCM_VolumeToTableMappingMatrix); if (result.good()) { for (size_t n = 0; result.good() && (n < vm); n++) diff --git a/dcmiod/tests/CMakeLists.txt b/dcmiod/tests/CMakeLists.txt index 3a04022e..1ebae734 100644 --- a/dcmiod/tests/CMakeLists.txt +++ b/dcmiod/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # declare executables -DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil) +DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil timagepixel) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(dcmiod_tests dcmiod dcmdata oflog ofstd) diff --git a/dcmiod/tests/Makefile.dep b/dcmiod/tests/Makefile.dep index 7ef8406f..facbdd69 100644 --- a/dcmiod/tests/Makefile.dep +++ b/dcmiod/tests/Makefile.dep @@ -88,3 +88,148 @@ tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/logmacro.h \ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ ../../oflog/include/dcmtk/oflog/tracelog.h +timagepixel.o: timagepixel.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/cnvrsn.def \ + ../../ofstd/include/dcmtk/ofstd/diag/vsprfw.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def \ + ../include/dcmtk/dcmiod/iodcommn.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/ioddef.h \ + ../include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmiod/modpatient.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmiod/modbase.h \ + ../include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../include/dcmtk/dcmiod/modgeneralstudy.h \ + ../include/dcmtk/dcmiod/iodmacro.h \ + ../include/dcmtk/dcmiod/modequipment.h \ + ../include/dcmtk/dcmiod/modgeneralseries.h \ + ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \ + ../include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../include/dcmtk/dcmiod/iodreferences.h \ + ../include/dcmtk/dcmiod/modgeneralimage.h \ + ../include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ + ../include/dcmtk/dcmiod/modimagepixel.h \ + ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h diff --git a/dcmiod/tests/Makefile.in b/dcmiod/tests/Makefile.in index 9aab2c89..ced94174 100644 --- a/dcmiod/tests/Makefile.in +++ b/dcmiod/tests/Makefile.in @@ -21,9 +21,9 @@ LOCALINCLUDES = -I$(dcmioddir)/include -I$(dcmdatadir)/include -I$(oflogdir)/inc LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmioddir)/libsrc -L$(dcmdatadir)/libsrc \ -L$(oflogdir)/libsrc -L$(ofstddir)/libsrc LOCALLIBS = -ldcmiod -ldcmdata -loflog -lofstd \ - $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) -test_objs = tests.o tcielabutil.o +test_objs = tests.o tcielabutil.o timagepixel.o objs = tests.o $(test_objs) progs = tests @@ -34,7 +34,7 @@ tclabutil: tclabutil.o $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $@.o $(LOCALLIBS) $(MATHLIBS) $(LIBS) tests: $(test_objs) - $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(ICONVLIBS) $(LIBS) + $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(LIBS) install: all diff --git a/dcmiod/tests/tcielabutil.cc b/dcmiod/tests/tcielabutil.cc index a4502f50..9fd78fd8 100644 --- a/dcmiod/tests/tcielabutil.cc +++ b/dcmiod/tests/tcielabutil.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2016, OFFIS e.V. + * Copyright (C) 2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -82,7 +82,7 @@ OFTEST(dcmiod_tcielabutil) srand (OFstatic_cast(unsigned int, time (NULL))); // We do 1000 runs - for (size_t run = 0; run < 1000; run++) + for (size_t numRun = 0; numRun< 1000; numRun++) { // i1, i2, i3: Input for conversion // r1, r2, r3: Results of conversion diff --git a/dcmiod/tests/tests.cc b/dcmiod/tests/tests.cc index 3f583bfa..c1528a9c 100644 --- a/dcmiod/tests/tests.cc +++ b/dcmiod/tests/tests.cc @@ -23,4 +23,5 @@ #include "dcmtk/ofstd/oftest.h" OFTEST_REGISTER(dcmiod_tcielabutil); +OFTEST_REGISTER(dcmiod_imagepixel); OFTEST_MAIN("dcmiod") diff --git a/dcmiod/tests/timagepixel.cc b/dcmiod/tests/timagepixel.cc new file mode 100644 index 00000000..2c4ed75f --- /dev/null +++ b/dcmiod/tests/timagepixel.cc @@ -0,0 +1,34 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Jan Schlamelcher + * + * Purpose: Tests for dcmiod's color conversion functionalities + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/dcmiod/iodimage.h" +#include "dcmtk/dcmiod/modimagepixel.h" +#include "dcmtk/dcmiod/modfloatingpointimagepixel.h" + +OFTEST(dcmiod_imagepixel) +{ + DcmIODImage,IODFloatingPointImagePixelModule> image1; + DcmIODImage,IODImagePixelModule,IODDoubleFloatingPointImagePixelModule> image2( OFin_place > ); +} diff --git a/dcmjpeg/apps/Makefile.in b/dcmjpeg/apps/Makefile.in index 9b509d59..36e985ef 100644 --- a/dcmjpeg/apps/Makefile.in +++ b/dcmjpeg/apps/Makefile.in @@ -49,7 +49,7 @@ LOCALINCLUDES = $(dcmjpeginc) $(ofstdinc) $(ofloginc) $(dcmdatainc) $(dcmimagein LIBDIRS = -L$(top_srcdir)/libsrc $(dcmjpeglibdir) $(dcmimagelibdir) $(dcmimglelibdir) \ $(dcmdatalibdir) $(ofloglibdir) $(ofstdlibdir) LOCALLIBS = $(dcmjpeglib) $(dcmimagelib) $(dcmimglelib) $(dcmdatalib) $(ofloglib) \ - $(ofstdlib) $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(ofstdlib) $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) objs = dcmdjpeg.o dcmcjpeg.o dcmj2pnm.o dcmmkdir.o progs = dcmdjpeg dcmcjpeg dcmj2pnm dcmmkdir diff --git a/dcmjpeg/apps/dcmdjpeg.cc b/dcmjpeg/apps/dcmdjpeg.cc index e7489cb7..da878d3f 100644 --- a/dcmjpeg/apps/dcmdjpeg.cc +++ b/dcmjpeg/apps/dcmdjpeg.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2001-2014, OFFIS e.V. + * Copyright (C) 2001-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -80,6 +80,7 @@ int main(int argc, char *argv[]) E_UIDCreation opt_uidcreation = EUC_default; E_PlanarConfiguration opt_planarconfig = EPC_default; OFBool opt_predictor6WorkaroundEnable = OFFalse; + OFBool opt_forceSingleFragmentPerFrame = OFFalse; OFConsoleApplication app(OFFIS_CONSOLE_APPLICATION, "Decode JPEG-compressed DICOM file", rcsid); OFCommandLine cmd; @@ -120,6 +121,7 @@ int main(int argc, char *argv[]) cmd.addSubGroup("workaround options for incorrect JPEG encodings:"); cmd.addOption("--workaround-pred6", "+w6", "enable workaround for JPEG lossless images\nwith overflow in predictor 6"); + cmd.addOption("--workaround-incpl", "+wi", "enable workaround for incomplete JPEG data"); cmd.addGroup("output options:"); cmd.addSubGroup("output file format:"); @@ -194,6 +196,7 @@ int main(int argc, char *argv[]) cmd.endOptionBlock(); if (cmd.findOption("--workaround-pred6")) opt_predictor6WorkaroundEnable = OFTrue; + if (cmd.findOption("--workaround-incpl")) opt_forceSingleFragmentPerFrame = OFTrue; cmd.beginOptionBlock(); if (cmd.findOption("--read-file")) @@ -272,7 +275,8 @@ int main(int argc, char *argv[]) opt_decompCSconversion, opt_uidcreation, opt_planarconfig, - opt_predictor6WorkaroundEnable); + opt_predictor6WorkaroundEnable, + opt_forceSingleFragmentPerFrame); /* make sure data dictionary is loaded */ if (!dcmDataDict.isDictionaryLoaded()) diff --git a/dcmjpeg/docs/dcmdjpeg.man b/dcmjpeg/docs/dcmdjpeg.man index d87dfa3e..16342072 100644 --- a/dcmjpeg/docs/dcmdjpeg.man +++ b/dcmjpeg/docs/dcmdjpeg.man @@ -167,6 +167,15 @@ workaround options for incorrect JPEG encodings: # This flag enables a correct decompression of such faulty images, but # at the same time will cause an incorrect decompression of correctly # compressed images. Use with care. + + +wi --workaround-incpl + enable workaround for incomplete JPEG data + + # This option causes dcmjpeg to ignore incomplete JPEG data + # at the end of a compressed fragment and to start decompressing + # the next frame from the next fragment (if any). This permits + # images with incomplete JPEG data to be decoded. + \endverbatim \subsection output_options output options @@ -323,6 +332,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 2001-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2001-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmjpeg/include/dcmtk/dcmjpeg/djcparam.h b/dcmjpeg/include/dcmtk/dcmjpeg/djcparam.h index d3f3bcca..f9a5e2a3 100644 --- a/dcmjpeg/include/dcmtk/dcmjpeg/djcparam.h +++ b/dcmjpeg/include/dcmtk/dcmjpeg/djcparam.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2014, OFFIS e.V. + * Copyright (C) 1997-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -40,6 +40,8 @@ public: * decompressed color images should be handled * @param predictor6WorkaroundEnable enable workaround for buggy lossless compressed images with * overflow in predictor 6 for images with 16 bits/pixel + * @param pForceSingleFragmentPerFrame while decompressing a multiframe image, + * assume one fragment per frame even if the JPEG data for some frame is incomplete * @param pOptimizeHuffman perform huffman table optimization for 8 bits/pixel compression? * @param pSmoothingFactor smoothing factor for image compression, 0..100 * @param pForcedBitDepth forced bit depth for image compression, 0 (auto) or 8/12/16 @@ -71,6 +73,7 @@ public: E_UIDCreation pCreateSOPInstanceUID, E_PlanarConfiguration pPlanarConfiguration, OFBool predictor6WorkaroundEnable = OFFalse, + OFBool pForceSingleFragmentPerFrame = OFFalse, OFBool pOptimizeHuffman = OFFalse, int pSmoothingFactor = 0, int pForcedBitDepth = 0, @@ -301,6 +304,14 @@ public: return predictor6WorkaroundEnabled_; } + /** returns flag indicating whether one fragment per frame should be enforced while decoding + * @return flag indicating whether one fragment per frame should be enforced while decoding + */ + OFBool getForceSingleFragmentPerFrame() const + { + return forceSingleFragmentPerFrame; + } + private: /// private undefined copy assignment operator @@ -397,6 +408,11 @@ private: /// flag indicating that the workaround for buggy JPEG lossless images with incorrect predictor 6 is enabled OFBool predictor6WorkaroundEnabled_; + /** flag indicating that while decompressing a multiframe image one fragment per frame + * should be assumed even if the JPEG data for some frame is incomplete + */ + OFBool forceSingleFragmentPerFrame; + }; diff --git a/dcmjpeg/include/dcmtk/dcmjpeg/djdecode.h b/dcmjpeg/include/dcmtk/dcmjpeg/djdecode.h index d626b9dd..11abc6d6 100644 --- a/dcmjpeg/include/dcmtk/dcmjpeg/djdecode.h +++ b/dcmjpeg/include/dcmtk/dcmjpeg/djdecode.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2011, OFFIS e.V. + * Copyright (C) 1997-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -48,12 +48,15 @@ public: * of color images should be encoded upon decompression. * @param predictor6WorkaroundEnable enable workaround for buggy lossless compressed images with * overflow in predictor 6 for images with 16 bits/pixel + * @param pForceSingleFragmentPerFrame while decompressing a multiframe image, + * assume one fragment per frame even if the JPEG data for some frame is incomplete */ static void registerCodecs( E_DecompressionColorSpaceConversion pDecompressionCSConversion = EDC_photometricInterpretation, E_UIDCreation pCreateSOPInstanceUID = EUC_default, E_PlanarConfiguration pPlanarConfiguration = EPC_default, - OFBool predictor6WorkaroundEnable = OFFalse); + OFBool predictor6WorkaroundEnable = OFFalse, + OFBool pForceSingleFragmentPerFrame = OFFalse); /** deregisters decoders. * Attention: Must not be called while other threads might still use diff --git a/dcmjpeg/libijg12/jdmarker.c b/dcmjpeg/libijg12/jdmarker.c index b5d29c7a..3045f5f1 100644 --- a/dcmjpeg/libijg12/jdmarker.c +++ b/dcmjpeg/libijg12/jdmarker.c @@ -376,29 +376,29 @@ get_dac (j_decompress_ptr cinfo) /* Process a DAC marker */ { IJG_INT32 length; - int index, val; + int idx, val; INPUT_VARS(cinfo); INPUT_2BYTES(cinfo, length, return FALSE); length -= 2; while (length > 0) { - INPUT_BYTE(cinfo, index, return FALSE); + INPUT_BYTE(cinfo, idx, return FALSE); INPUT_BYTE(cinfo, val, return FALSE); length -= 2; - TRACEMS2(cinfo, 1, JTRC_DAC, index, val); + TRACEMS2(cinfo, 1, JTRC_DAC, idx, val); - if (index < 0 || index >= (2*NUM_ARITH_TBLS)) - ERREXIT1(cinfo, JERR_DAC_INDEX, index); + if (idx < 0 || idx >= (2*NUM_ARITH_TBLS)) + ERREXIT1(cinfo, JERR_DAC_INDEX, idx); - if (index >= NUM_ARITH_TBLS) { /* define AC table */ - cinfo->arith_ac_K[index-NUM_ARITH_TBLS] = (UINT8) val; + if (idx >= NUM_ARITH_TBLS) { /* define AC table */ + cinfo->arith_ac_K[idx-NUM_ARITH_TBLS] = (UINT8) val; } else { /* define DC table */ - cinfo->arith_dc_L[index] = (UINT8) (val & 0x0F); - cinfo->arith_dc_U[index] = (UINT8) (val >> 4); - if (cinfo->arith_dc_L[index] > cinfo->arith_dc_U[index]) + cinfo->arith_dc_L[idx] = (UINT8) (val & 0x0F); + cinfo->arith_dc_U[idx] = (UINT8) (val >> 4); + if (cinfo->arith_dc_L[idx] > cinfo->arith_dc_U[idx]) ERREXIT1(cinfo, JERR_DAC_VALUE, val); } } diff --git a/dcmjpeg/libijg12/jpeglib12.h b/dcmjpeg/libijg12/jpeglib12.h index 0a0baa7b..040cef4e 100644 --- a/dcmjpeg/libijg12/jpeglib12.h +++ b/dcmjpeg/libijg12/jpeglib12.h @@ -422,6 +422,11 @@ struct jpeg_compress_struct { struct jpeg_downsampler * downsample; jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ int script_space_size; + + /* force the use of an extended sequential SOF1 marker even when a + * SOF0 marker could be used, to comply with DICOM CP 1447. + * This is only needed for 8 bits/sample. */ + boolean force_extended_sequential_marker; }; @@ -646,6 +651,9 @@ struct jpeg_decompress_struct { struct jpeg_upsampler * upsample; struct jpeg_color_deconverter * cconvert; struct jpeg_color_quantizer * cquantize; + + /* Options that enable or disable various workarounds */ + unsigned int workaround_options; }; diff --git a/dcmjpeg/libijg16/jpeglib16.h b/dcmjpeg/libijg16/jpeglib16.h index 7c6c7198..3ebb55ae 100644 --- a/dcmjpeg/libijg16/jpeglib16.h +++ b/dcmjpeg/libijg16/jpeglib16.h @@ -422,6 +422,11 @@ struct jpeg_compress_struct { struct jpeg_downsampler * downsample; jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ int script_space_size; + + /* force the use of an extended sequential SOF1 marker even when a + * SOF0 marker could be used, to comply with DICOM CP 1447. + * This is only needed for 8 bits/sample. */ + boolean force_extended_sequential_marker; }; diff --git a/dcmjpeg/libijg8/jcapimin.c b/dcmjpeg/libijg8/jcapimin.c index 96c9353f..6076289e 100644 --- a/dcmjpeg/libijg8/jcapimin.c +++ b/dcmjpeg/libijg8/jcapimin.c @@ -75,6 +75,8 @@ jpeg_CreateCompress (j_compress_ptr cinfo, int version, size_t structsize) cinfo->input_gamma = 1.0; /* in case application forgets */ + cinfo->force_extended_sequential_marker = FALSE; + /* OK, I'm ready */ cinfo->global_state = CSTATE_START; } diff --git a/dcmjpeg/libijg8/jcmarker.c b/dcmjpeg/libijg8/jcmarker.c index 857f22b1..05ee5f05 100644 --- a/dcmjpeg/libijg8/jcmarker.c +++ b/dcmjpeg/libijg8/jcmarker.c @@ -546,7 +546,7 @@ write_frame_header (j_compress_ptr cinfo) emit_sof(cinfo, M_SOF2); /* SOF code for progressive Huffman */ else if (cinfo->process == JPROC_LOSSLESS) emit_sof(cinfo, M_SOF3); /* SOF code for lossless Huffman */ - else if (is_baseline) + else if (is_baseline && (!cinfo->force_extended_sequential_marker)) emit_sof(cinfo, M_SOF0); /* SOF code for baseline implementation */ else emit_sof(cinfo, M_SOF1); /* SOF code for non-baseline Huffman file */ diff --git a/dcmjpeg/libijg8/jpeglib8.h b/dcmjpeg/libijg8/jpeglib8.h index ec8595cc..3cb2bf18 100644 --- a/dcmjpeg/libijg8/jpeglib8.h +++ b/dcmjpeg/libijg8/jpeglib8.h @@ -422,6 +422,11 @@ struct jpeg_compress_struct { struct jpeg_downsampler * downsample; jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ int script_space_size; + + /* force the use of an extended sequential SOF1 marker even when a + * SOF0 marker could be used, to comply with DICOM CP 1447. + * This is only needed for 8 bits/sample. */ + boolean force_extended_sequential_marker; }; @@ -646,6 +651,9 @@ struct jpeg_decompress_struct { struct jpeg_upsampler * upsample; struct jpeg_color_deconverter * cconvert; struct jpeg_color_quantizer * cquantize; + + /* Options that enable or disable various workarounds */ + unsigned int workaround_options; }; diff --git a/dcmjpeg/libsrc/ddpiimpl.cc b/dcmjpeg/libsrc/ddpiimpl.cc index 8935e3f0..7bd35ef1 100644 --- a/dcmjpeg/libsrc/ddpiimpl.cc +++ b/dcmjpeg/libsrc/ddpiimpl.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2003-2014, OFFIS e.V. + * Copyright (C) 2003-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -79,7 +79,7 @@ OFBool DicomDirImageImplementation::scaleImage(DcmItem *dataset, /* check parameters (at least the pointers) */ if ((dataset != NULL) && (pixel != NULL) && (frame > 0)) { - size_t flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays; + unsigned long flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays; if (decompressAll) flags |= CIF_DecompressCompletePixelData; /* open referenced image */ diff --git a/dcmjpeg/libsrc/djcodecd.cc b/dcmjpeg/libsrc/djcodecd.cc index b5aad2e1..125b96b6 100644 --- a/dcmjpeg/libsrc/djcodecd.cc +++ b/dcmjpeg/libsrc/djcodecd.cc @@ -163,6 +163,7 @@ OFCondition DJCodecDecoder::decode( if (result.good()) { Uint8 *imageData8 = OFreinterpret_cast(Uint8*, imageData16); + OFBool forceSingleFragmentPerFrame = djcp->getForceSingleFragmentPerFrame(); while ((currentFrame < imageFrames)&&(result.good())) { @@ -180,6 +181,15 @@ OFCondition DJCodecDecoder::decode( if (result.good()) { result = jpeg->decode(jpegData, fragmentLength, imageData8, OFstatic_cast(Uint32, frameSize), isSigned); + + // check if we should enforce "one fragment per frame" while + // decompressing a multi-frame image even if stream suspension occurs + if ((EJ_Suspension == result) && forceSingleFragmentPerFrame) + { + // frame is incomplete. Nevertheless skip to next frame. + // This permits decompression of faulty multi-frame images. + result = EC_Normal; + } } } } diff --git a/dcmjpeg/libsrc/djcodece.cc b/dcmjpeg/libsrc/djcodece.cc index 43461aae..d3d2d0cf 100644 --- a/dcmjpeg/libsrc/djcodece.cc +++ b/dcmjpeg/libsrc/djcodece.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2001-2015, OFFIS e.V. + * Copyright (C) 2001-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -515,7 +515,7 @@ OFCondition DJCodecEncoder::encodeTrueLossless( } /* Set and check photometric interpretation (up to now: EPI_RGB) - * Only photometric interpretations, that are explicetly "supported" by the + * Only photometric interpretations, that are explicitly "supported" by the * IJG lib are set. For all others "unknown" is set. Some are even rejected here. */ if (photometricInterpretation == "MONOCHROME1") @@ -929,7 +929,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage( if (result.good()) result = adjustOverlays(dataset, dimage); // VOI transformations should only be applied on the dataset level, not - // in nested items such as the Icon Image Sequence where we don't exect + // in nested items such as the Icon Image Sequence where we don't expect // a VOI window or LUT to be present size_t windowType = 0; if (dataset->ident() == EVR_dataset) @@ -958,7 +958,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage( if (classUID && ! cp->getConvertToSC()) { // these three SOP classes use the X-Ray Image Module in which the meaning - // of the Modality LUT transformation is "inversersed" and, therefore, + // of the Modality LUT transformation is "inversed" and, therefore, // needs special handling. This is not an issue if we're converting to // secondary capture anyway. if ((0 == strcmp(classUID, UID_XRayAngiographicImageStorage)) || @@ -1415,7 +1415,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration8( const Uint16 samplesPerPixel, const Uint16 oldPlanarConfig) { - if ( (pixelData == NULL) ) + if (pixelData == NULL) return EC_IllegalParameter; // allocate target buffer Uint8* px8 = new Uint8[numValues]; @@ -1451,7 +1451,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration16( const Uint16 samplesPerPixel, const Uint16 oldPlanarConfig) { - if ( (pixelData == NULL) ) + if (pixelData == NULL) return EC_IllegalParameter; // allocate target buffer Uint16* px16 = new Uint16[numValues]; diff --git a/dcmjpeg/libsrc/djcparam.cc b/dcmjpeg/libsrc/djcparam.cc index 37bc442b..9b04db40 100644 --- a/dcmjpeg/libsrc/djcparam.cc +++ b/dcmjpeg/libsrc/djcparam.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2014, OFFIS e.V. + * Copyright (C) 1997-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -28,6 +28,7 @@ DJCodecParameter::DJCodecParameter( E_UIDCreation pCreateSOPInstanceUID, E_PlanarConfiguration pPlanarConfiguration, OFBool predictor6WorkaroundEnable, + OFBool pForceSingleFragmentPerFrame, OFBool pOptimizeHuffman, int pSmoothingFactor, int pForcedBitDepth, @@ -76,6 +77,7 @@ DJCodecParameter::DJCodecParameter( , acrNemaCompatibility(pAcrNemaCompatibility) , trueLosslessMode(pTrueLosslessMode) , predictor6WorkaroundEnabled_(predictor6WorkaroundEnable) +, forceSingleFragmentPerFrame(pForceSingleFragmentPerFrame) { } @@ -108,6 +110,7 @@ DJCodecParameter::DJCodecParameter(const DJCodecParameter& arg) , acrNemaCompatibility(arg.acrNemaCompatibility) , trueLosslessMode(arg.trueLosslessMode) , predictor6WorkaroundEnabled_(arg.predictor6WorkaroundEnabled_) +, forceSingleFragmentPerFrame(arg.forceSingleFragmentPerFrame) { } diff --git a/dcmjpeg/libsrc/djdecode.cc b/dcmjpeg/libsrc/djdecode.cc index 80ae7933..f4276ad1 100644 --- a/dcmjpeg/libsrc/djdecode.cc +++ b/dcmjpeg/libsrc/djdecode.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2010, OFFIS e.V. + * Copyright (C) 1997-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -23,7 +23,7 @@ #include "dcmtk/dcmjpeg/djdecode.h" #include "dcmtk/dcmdata/dccodec.h" /* for DcmCodecStruct */ -#include "dcmtk/dcmjpeg/djdecbas.h" +#include "dcmtk/dcmjpeg/djdecbas.h" #include "dcmtk/dcmjpeg/djdecext.h" #include "dcmtk/dcmjpeg/djdecsps.h" #include "dcmtk/dcmjpeg/djdecpro.h" @@ -45,16 +45,19 @@ void DJDecoderRegistration::registerCodecs( E_DecompressionColorSpaceConversion pDecompressionCSConversion, E_UIDCreation pCreateSOPInstanceUID, E_PlanarConfiguration pPlanarConfiguration, - OFBool predictor6WorkaroundEnable) + OFBool predictor6WorkaroundEnable, + OFBool pForceSingleFragmentPerFrame) { if (! registered) { cp = new DJCodecParameter( ECC_lossyYCbCr, // ignored, compression only - pDecompressionCSConversion, - pCreateSOPInstanceUID, + pDecompressionCSConversion, + pCreateSOPInstanceUID, pPlanarConfiguration, - predictor6WorkaroundEnable); + predictor6WorkaroundEnable, + pForceSingleFragmentPerFrame); + if (cp) { // baseline JPEG diff --git a/dcmjpeg/libsrc/djeijg8.cc b/dcmjpeg/libsrc/djeijg8.cc index 01d228a4..d61458ca 100644 --- a/dcmjpeg/libsrc/djeijg8.cc +++ b/dcmjpeg/libsrc/djeijg8.cc @@ -395,6 +395,7 @@ OFCondition DJCompressIJG8Bit::encode( break; case EJM_sequential: jpeg_set_quality(&cinfo, quality, 0); + cinfo.force_extended_sequential_marker = TRUE; break; case EJM_spectralSelection: jpeg_set_quality(&cinfo, quality, 0); diff --git a/dcmjpeg/libsrc/djencode.cc b/dcmjpeg/libsrc/djencode.cc index ff55eb46..9dc18e43 100644 --- a/dcmjpeg/libsrc/djencode.cc +++ b/dcmjpeg/libsrc/djencode.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2010, OFFIS e.V. + * Copyright (C) 1997-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -74,6 +74,7 @@ void DJEncoderRegistration::registerCodecs( pCreateSOPInstanceUID, EPC_default, // not relevant, used for decompression only OFFalse, // not relevant, used for decompression only + OFFalse, // not relevant, used for decompression only pOptimizeHuffman, pSmoothingFactor, pForcedBitDepth, diff --git a/dcmjpls/apps/Makefile.in b/dcmjpls/apps/Makefile.in index e348ff28..5d86402d 100644 --- a/dcmjpls/apps/Makefile.in +++ b/dcmjpls/apps/Makefile.in @@ -50,7 +50,7 @@ LOCALINCLUDES = $(dcmjplsinc) $(ofstdinc) $(ofloginc) $(dcmdatainc) $(dcmimagein LIBDIRS = -L$(top_srcdir)/libsrc $(dcmjplslibdir) $(libcharlslibdir) $(dcmimagelibdir) \ $(dcmimglelibdir) $(dcmdatalibdir) $(ofloglibdir) $(ofstdlibdir) LOCALLIBS = $(dcmjplslib) $(dcmimagelib) $(dcmimglelib) $(dcmdatalib) $(ofloglib) $(ofstdlib) \ - $(libcharlslib) $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(libcharlslib) $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) objs = dcmdjpls.o dcmcjpls.o dcml2pnm.o progs = dcmdjpls dcmcjpls dcml2pnm diff --git a/dcmjpls/docs/License.txt b/dcmjpls/docs/License.txt index 14950b7e..ef5e5d72 100644 --- a/dcmjpls/docs/License.txt +++ b/dcmjpls/docs/License.txt @@ -2,6 +2,7 @@ The libcharls library containing the JPEG-LS encoder and decoder in this DCMTK module is based on the CharLS library (see http://charls.codeplex.com/). The CharLS library is available under the following license: + ------------------------------------------------------------------------------- Copyright (c) 2007-2010, Jan de Vaan All rights reserved. @@ -31,3 +32,13 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------- + +LEGAL REMARK: + +Please note that Hewlett Packard claims to own patents that apply to +JPEG-LS. Hewlett Packard grants free licenses for conformant +implementations of JPEG-LS. OFFIS as the author of the DCMTK toolkit +has obtained such a license, but depending on your national +legislations companies that use DCMTK's JPEG-LS codec may need to +also acquire a license. Read more at http://www.hpl.hp.com/loco/ if +you intend to use this module for commercial purposes. diff --git a/dcmjpls/docs/dcmjpls.dox b/dcmjpls/docs/dcmjpls.dox index d390d0bb..9db860a5 100644 --- a/dcmjpls/docs/dcmjpls.dox +++ b/dcmjpls/docs/dcmjpls.dox @@ -27,7 +27,7 @@ This module contains the following command line tools: The following example shows how to compress a DICOM image file with lossless JPEG-LS: \code -DJLSEncoderRegistration::registerCodecs(); // register JPEG codecs +DJLSEncoderRegistration::registerCodecs(); // register JPEG-LS codecs DcmFileFormat fileformat; if (fileformat.loadFile("test.dcm").good()) { @@ -46,7 +46,7 @@ if (fileformat.loadFile("test.dcm").good()) delete metaInfo->remove(DCM_MediaStorageSOPClassUID); delete metaInfo->remove(DCM_MediaStorageSOPInstanceUID); - // store in lossless JPEG format + // store in lossless JPEG-LS format fileformat.saveFile("test_jpls.dcm", EXS_JPEGLSLossless); } } @@ -74,4 +74,14 @@ if (fileformat.loadFile("test_jpls.dcm").good()) DJLSDecoderRegistration::cleanup(); // deregister JPEG-LS codecs \endcode +\section Legal Legal Remark + +Please note that Hewlett Packard claims to own patents that apply to +JPEG-LS. Hewlett Packard grants free licenses for conformant +implementations of JPEG-LS. OFFIS as the author of the DCMTK toolkit +has obtained such a license, but depending on your national +legislations companies that use DCMTK's JPEG-LS codec may need to +also acquire a license. Read more at http://www.hpl.hp.com/loco/ if +you intend to use this module for commercial purposes. + */ diff --git a/dcmjpls/libcharls/decodstr.h b/dcmjpls/libcharls/decodstr.h index 772af6fc..d892c5ef 100644 --- a/dcmjpls/libcharls/decodstr.h +++ b/dcmjpls/libcharls/decodstr.h @@ -19,10 +19,13 @@ class DecoderStrategy public: DecoderStrategy(const JlsParameters& info) : _info(info), - _processLine(0), + _processLine(0), _readCache(0), _validBits(0), - _position(0) + _position(0), + _size(0), + _current_offset(0), + _nextFFPosition(0) { } @@ -31,14 +34,15 @@ public: } virtual void SetPresets(const JlsCustomParameters& presets) = 0; - virtual size_t DecodeScan(void* outputData, const JlsRect& size, const void* compressedData, size_t byteCount, bool bCheck) = 0; + virtual size_t DecodeScan(void* outputData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCheck) = 0; - void Init(BYTE* compressedBytes, size_t byteCount) + void Init(BYTE **ptr, size_t *size, size_t offset) { _validBits = 0; _readCache = 0; - _position = compressedBytes; - _endPosition = compressedBytes + byteCount; + _position = ptr; + _size = size; + _current_offset = offset; _nextFFPosition = FindNextFF(); MakeValid(); } @@ -61,11 +65,11 @@ public: void EndScan() { - if ((*_position) != 0xFF) + if (current_value() != 0xFF) { ReadBit(); - if ((*_position) != 0xFF) + if (current_value() != 0xFF) throw JlsException(TooMuchCompressedData); } @@ -77,11 +81,11 @@ public: inlinehint bool OptimizedRead() { // Easy & fast: if there is no 0xFF byte in sight, we can read without bitstuffing - if (_position < _nextFFPosition - (sizeof(bufType)-1)) + if (_current_offset < _nextFFPosition - (sizeof(bufType)-1)) { - _readCache |= FromBigEndian::Read(_position) >> _validBits; + _readCache |= FromBigEndian::Read(*_position + _current_offset) >> _validBits; int bytesToRead = (bufferbits - _validBits) >> 3; - _position += bytesToRead; + _current_offset += bytesToRead; _validBits += bytesToRead * 8; ASSERT(_validBits >= bufferbits - 8); return true; @@ -104,7 +108,7 @@ public: do { - if (_position >= _endPosition) + if (_current_offset >= *_size) { if (_validBits <= 0) throw JlsException(InvalidCompressedData); @@ -112,12 +116,12 @@ public: return; } - bufType valnew = _position[0]; + bufType valnew = current_value(); if (valnew == 0xFF) { // JPEG bitstream rule: no FF may be followed by 0x80 or higher - if (_position == _endPosition - 1 || (_position[1] & 0x80) != 0) + if (_current_offset == *_size - 1 || ((*_position)[_current_offset + 1] & 0x80) != 0) { if (_validBits <= 0) throw JlsException(InvalidCompressedData); @@ -127,7 +131,7 @@ public: } _readCache |= valnew << (bufferbits - 8 - _validBits); - _position += 1; + _current_offset += 1; _validBits += 8; if (valnew == 0xFF) @@ -143,39 +147,39 @@ public: } - BYTE* FindNextFF() + size_t FindNextFF() { - BYTE* pbyteNextFF = _position; + size_t off = _current_offset; - while (pbyteNextFF < _endPosition) + while (off < *_size) { - if (*pbyteNextFF == 0xFF) + if ((*_position)[off] == 0xFF) { break; } - pbyteNextFF++; + off++; } - return pbyteNextFF; + return off; } - BYTE* GetCurBytePos() const + BYTE *GetCurBytePos() const { LONG validBits = _validBits; - BYTE* compressedBytes = _position; + size_t off = _current_offset; for (;;) { - LONG cbitLast = compressedBytes[-1] == 0xFF ? 7 : 8; + LONG cbitLast = (*_position)[off - 1] == 0xFF ? 7 : 8; if (validBits < cbitLast ) - return compressedBytes; + return (*_position) + off; validBits -= cbitLast; - compressedBytes--; - } + off--; + } } @@ -273,12 +277,18 @@ protected: OFauto_ptr _processLine; private: + BYTE current_value() const + { + return (*_position)[_current_offset]; + } + // decoding bufType _readCache; LONG _validBits; - BYTE* _position; - BYTE* _nextFFPosition; - BYTE* _endPosition; + BYTE **_position; + size_t *_size; + size_t _current_offset; + size_t _nextFFPosition; }; diff --git a/dcmjpls/libcharls/encodstr.h b/dcmjpls/libcharls/encodstr.h index ecc823cc..786754e4 100644 --- a/dcmjpls/libcharls/encodstr.h +++ b/dcmjpls/libcharls/encodstr.h @@ -5,7 +5,11 @@ #ifndef CHARLS_ENCODERSTRATEGY #define CHARLS_ENCODERSTRATEGY +#define INCLUDE_NEW +#include "dcmtk/ofstd/ofstdinc.h" + #include "dcmtk/ofstd/ofaptr.h" +#include "dcmtk/ofstd/ofbmanip.h" #include "procline.h" #include "decodstr.h" @@ -42,16 +46,17 @@ public: virtual void SetPresets(const JlsCustomParameters& presets) = 0; - virtual size_t EncodeScan(const void* pvoid, void* pvoidOut, size_t byteCount, void* pvoidCompare) = 0; + virtual size_t EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare) = 0; protected: - void Init(BYTE* compressedBytes, size_t byteCount) + void Init(BYTE **ptr, size_t *size, size_t offset) { bitpos = 32; valcurrent = 0; - _position = compressedBytes; - _compressedLength = byteCount; + _position = ptr; + _size = size; + _current_offset = offset; } @@ -114,22 +119,18 @@ protected: if (_isFFWritten) { // JPEG-LS requirement (T.87, A.1) to detect markers: after a xFF value a single 0 bit needs to be inserted. - *_position = BYTE(valcurrent >> 25); - valcurrent = valcurrent << 7; - bitpos += 7; + write(BYTE(valcurrent >> 25)); + valcurrent = valcurrent << 7; + bitpos += 7; _isFFWritten = false; } else { - *_position = BYTE(valcurrent >> 24); + write(BYTE(valcurrent >> 24)); + _isFFWritten = (*_position)[_current_offset - 1] == 0xFF; valcurrent = valcurrent << 8; - bitpos += 8; - _isFFWritten = *_position == 0xFF; + bitpos += 8; } - - _position++; - _compressedLength--; - _bytesWritten++; } @@ -153,13 +154,45 @@ protected: JlsParameters _info; OFauto_ptr _processLine; private: + static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size) + { + size_t new_size = *old_size * 2; +#ifdef HAVE_STD__NOTHROW + BYTE *new_ptr = new(std::nothrow) BYTE[new_size]; +#else + BYTE *new_ptr = new BYTE[new_size]; +#endif + if (new_ptr == NULL) { + throw alloc_fail(); + } + + OFBitmanipTemplate::copyMem(old_ptr, new_ptr, *old_size); + + delete[] old_ptr; + + *old_size = new_size; + + return new_ptr; + } + + void write(BYTE value) + { + if (_current_offset == *_size) { + *_position = re_alloc(*_position, _size); + } + + (*_position)[_current_offset] = value; + ++_current_offset; + ++_bytesWritten; + } unsigned int valcurrent; LONG bitpos; - size_t _compressedLength; // encoding - BYTE* _position; + BYTE **_position; + size_t *_size; + size_t _current_offset; bool _isFFWritten; size_t _bytesWritten; diff --git a/dcmjpls/libcharls/header.cc b/dcmjpls/libcharls/header.cc index 11c3879b..f7c3dd17 100644 --- a/dcmjpls/libcharls/header.cc +++ b/dcmjpls/libcharls/header.cc @@ -145,9 +145,7 @@ JpegSegment* CreateMarkerStartOfFrame(Size size, LONG bitsPerSample, LONG ccomp) // JLSOutputStream::JLSOutputStream() : _bCompare(false), - _pdata(NULL), - _cbyteOffset(0), - _cbyteLength(0), + _cbytesWritten(0), _icompLast(0) { } @@ -194,12 +192,14 @@ void JLSOutputStream::AddColorTransform(int i) // // Write() // -size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength) +size_t JLSOutputStream::Write(BYTE **ptr, size_t *size, size_t offset) { - _pdata = pdata; - _cbyteLength = cbyteLength; + _position = ptr; + _size = size; + _current_offset = offset; WriteByte(0xFF); + WriteByte(JPEG_SOI); for (size_t i = 0; i < _segments.size(); ++i) @@ -212,7 +212,7 @@ size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength) WriteByte(0xFF); WriteByte(JPEG_EOI); - return _cbyteOffset; + return _cbytesWritten; } @@ -531,7 +531,9 @@ void JLSInputStream::ReadScan(void* pvout) { OFauto_ptr qcodec = JlsCodecFactory().GetCodec(_info, _info.custom); - _cbyteOffset += qcodec->DecodeScan(pvout, _rect, _pdata + _cbyteOffset, _cbyteLength - _cbyteOffset, _bCompare); + BYTE **ptr = (BYTE **)&_pdata; + size_t *size = &_cbyteLength; + _cbyteOffset += qcodec->DecodeScan(pvout, _rect, ptr, size, _cbyteOffset, _bCompare); } @@ -551,8 +553,8 @@ public: JlsParameters info = _info; info.components = _ccompScan; OFauto_ptr qcodec =JlsCodecFactory().GetCodec(info, _info.custom); - size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->GetPos(), pstream->GetLength(), pstream->_bCompare ? pstream->GetPos() : NULL); - pstream->Seek(cbyteWritten); + size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->get_pos(), pstream->get_size(), pstream->get_offset(), pstream->_bCompare); + pstream->seek(cbyteWritten); } diff --git a/dcmjpls/libcharls/intrface.cc b/dcmjpls/libcharls/intrface.cc index 91f75f1e..be797404 100644 --- a/dcmjpls/libcharls/intrface.cc +++ b/dcmjpls/libcharls/intrface.cc @@ -37,13 +37,37 @@ JLS_ERROR CheckInput(const void* compressedData, size_t compressedLength, const return CheckParameterCoherent(pparams); } +JLS_ERROR CheckInput(const void* uncompressedData, size_t uncompressedLength, const JlsParameters* pparams) +{ + if (pparams == NULL) + return InvalidJlsParameters; + + if (uncompressedData == NULL) + return InvalidJlsParameters; + + if (pparams->width < 1 || pparams->width > 65535) + return ParameterValueNotSupported; + + if (pparams->height < 1 || pparams->height > 65535) + return ParameterValueNotSupported; + + int bytesperline = pparams->bytesperline < 0 ? -pparams->bytesperline : pparams->bytesperline; + + if (uncompressedLength < size_t(bytesperline * pparams->height)) + return InvalidJlsParameters; + + return CheckParameterCoherent(pparams); +} + extern "C" { -CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams) +CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(BYTE **buf, size_t *buf_size, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams) { + *pcbyteWritten = 0; + JlsParameters info = *pparams; if(info.bytesperline == 0) { @@ -54,7 +78,7 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL } } - JLS_ERROR parameterError = CheckInput(compressedData, compressedLength, uncompressedData, uncompressedLength, &info); + JLS_ERROR parameterError = CheckInput(uncompressedData, uncompressedLength, &info); if (parameterError != OK) return parameterError; @@ -86,9 +110,15 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL stream.AddScan(uncompressedData, &info); } - - stream.Write((BYTE*)compressedData, compressedLength); - + try + { + stream.Write(buf, buf_size, 0); + } + catch (const alloc_fail&) + { + return MemoryAllocationFailure; + } + *pcbyteWritten = stream.GetBytesWritten(); return OK; } @@ -169,14 +199,23 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsVerifyEncode(const void* uncompressedData, size { stream.AddScan(uncompressedData, &info); } - - OFVector rgbyteCompressed(compressedLength + 16); - - memcpy(&rgbyteCompressed[0], compressedData, compressedLength); + size_t buf_size = compressedLength + 16; + BYTE *buf = new BYTE[buf_size]; + + memcpy(buf, compressedData, compressedLength); + stream.EnableCompare(true); - stream.Write(&rgbyteCompressed[0], compressedLength); - + + try + { + stream.Write(&buf, &buf_size, 0); + } + catch (const alloc_fail&) + { + return MemoryAllocationFailure; + } + return OK; } diff --git a/dcmjpls/libcharls/intrface.h b/dcmjpls/libcharls/intrface.h index 5272affc..c8fdaa90 100644 --- a/dcmjpls/libcharls/intrface.h +++ b/dcmjpls/libcharls/intrface.h @@ -25,8 +25,8 @@ extern "C" { #endif - CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, - const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams); + CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(BYTE **ptr, size_t *size, size_t* pcbyteWritten, + const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams); CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsDecode(void* uncompressedData, size_t uncompressedLength, const void* compressedData, size_t compressedLength, diff --git a/dcmjpls/libcharls/pubtypes.h b/dcmjpls/libcharls/pubtypes.h index 612738cd..9e2fd48a 100644 --- a/dcmjpls/libcharls/pubtypes.h +++ b/dcmjpls/libcharls/pubtypes.h @@ -17,7 +17,8 @@ enum JLS_ERROR TooMuchCompressedData, ImageTypeNotSupported, UnsupportedBitDepthForTransform, - UnsupportedColorTransform + UnsupportedColorTransform, + MemoryAllocationFailure }; diff --git a/dcmjpls/libcharls/scan.h b/dcmjpls/libcharls/scan.h index 589e299b..5cd25151 100644 --- a/dcmjpls/libcharls/scan.h +++ b/dcmjpls/libcharls/scan.h @@ -262,15 +262,15 @@ public: void DoLine(SAMPLE* pdummy); void DoLine(Triplet* pdummy); - void DoScan(BYTE* compressedBytes, size_t compressedLength); + void DoScan(BYTE **ptr, size_t *size, size_t offset); public: ProcessLine* CreateProcess(void* pvoidOut); void InitDefault(); void InitParams(LONG t1, LONG t2, LONG t3, LONG nReset); - size_t EncodeScan(const void* rawData, void* pvoidOut, size_t compressedLength, void* pvoidCompare); - size_t DecodeScan(void* rawData, const JlsRect& size, const void* compressedData, size_t compressedLength, bool bCompare); + size_t EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare); + size_t DecodeScan(void* rawData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCompare); protected: // codec parameters @@ -698,11 +698,11 @@ void JlsCodec::DoLine(Triplet*) // In ILV_NONE mode, DoScan is called for each component template -void JlsCodec::DoScan(BYTE* compressedBytes, size_t compressedLength) +void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) { _width = Info().width; - STRATEGY::Init(compressedBytes, compressedLength); + STRATEGY::Init(ptr, size, offset); LONG pixelstride = _width + 4; int components = Info().ilv == ILV_LINE ? Info().components : 1; @@ -788,19 +788,17 @@ ProcessLine* JlsCodec::CreateProcess(void* pvoidOut) // Setup codec for encoding and calls DoScan template -size_t JlsCodec::EncodeScan(const void* rawData, void* compressedData, size_t compressedLength, void* pvoidCompare) +size_t JlsCodec::EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare) { STRATEGY::_processLine = OFauto_ptr(CreateProcess(const_cast(rawData))); - - BYTE* compressedBytes = static_cast(compressedData); - if (pvoidCompare != NULL) + if (compare) { - STRATEGY::_qdecoder = OFauto_ptr(new JlsCodec(traits, Info())); - STRATEGY::_qdecoder->Init((BYTE*)pvoidCompare, compressedLength); + STRATEGY::_qdecoder = OFauto_ptr(new JlsCodec(traits, Info())); + STRATEGY::_qdecoder->Init(ptr, size, offset); } - DoScan(compressedBytes, compressedLength); + DoScan(ptr, size, offset); return STRATEGY::GetLength(); @@ -809,17 +807,16 @@ size_t JlsCodec::EncodeScan(const void* rawData, void* compress // Setup codec for decoding and calls DoScan template -size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, const void* compressedData, size_t compressedLength, bool bCompare) +size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, BYTE **ptr, size_t *size, size_t offset, bool bCompare) { STRATEGY::_processLine = OFauto_ptr(CreateProcess(rawData)); - BYTE* compressedBytes = const_cast(static_cast(compressedData)); _bCompare = bCompare; BYTE rgbyte[20]; size_t readBytes = 0; - ::memcpy(rgbyte, compressedBytes, 4); + ::memcpy(rgbyte, *ptr + offset + readBytes, 4); readBytes += 4; size_t cbyteScanheader = rgbyte[3] - 2; @@ -827,14 +824,14 @@ size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, if (cbyteScanheader > sizeof(rgbyte)) throw JlsException(InvalidCompressedData); - ::memcpy(rgbyte, compressedBytes, cbyteScanheader); + ::memcpy(rgbyte, *ptr + offset + readBytes, cbyteScanheader); readBytes += cbyteScanheader; _rect = rect; - DoScan(compressedBytes + readBytes, compressedLength - readBytes); + DoScan(ptr, size, offset + readBytes); - return STRATEGY::GetCurBytePos() - compressedBytes; + return STRATEGY::GetCurBytePos() - (*ptr + offset); } // Initialize the codec data structures. Depends on JPEG-LS parameters like T1-T3. diff --git a/dcmjpls/libcharls/streams.h b/dcmjpls/libcharls/streams.h index ea8e8ceb..a2ef422c 100644 --- a/dcmjpls/libcharls/streams.h +++ b/dcmjpls/libcharls/streams.h @@ -4,6 +4,9 @@ #ifndef CHARLS_STREAMS #define CHARLS_STREAMS +#define INCLUDE_NEW +#include "dcmtk/ofstd/ofstdinc.h" + #include "dcmtk/ofstd/ofvector.h" #include "dcmtk/ofstd/ofbmanip.h" #include "util.h" @@ -48,24 +51,30 @@ public: void AddLSE(const JlsCustomParameters* pcustom); void AddColorTransform(int i); size_t GetBytesWritten() - { return _cbyteOffset; } + { return _cbytesWritten; } - size_t GetLength() - { return _cbyteLength - _cbyteOffset; } + size_t Write(BYTE **ptr, size_t *size, size_t offset); + + BYTE **get_pos() { return _position; } + + size_t *get_size() { return _size; } + + size_t get_offset() { return _current_offset; } - size_t Write(BYTE* pdata, size_t cbyteLength); - void EnableCompare(bool bCompare) { _bCompare = bCompare; } private: - BYTE* GetPos() const - { return _pdata + _cbyteOffset; } - void WriteByte(BYTE val) { - ASSERT(!_bCompare || _pdata[_cbyteOffset] == val); + ASSERT(!_bCompare || (*_position)[_current_offset] == val); - _pdata[_cbyteOffset++] = val; + if (_current_offset == *_size) { + *_position = re_alloc(*_position, _size); + } + + (*_position)[_current_offset++] = val; + + _cbytesWritten++; } void WriteBytes(const OFVector& rgbyte) @@ -82,16 +91,40 @@ private: WriteByte(BYTE(val % 0x100)); } - - void Seek(size_t byteCount) - { _cbyteOffset += byteCount; } + void seek(size_t n) + { + _cbytesWritten += n; + _current_offset += n; + } bool _bCompare; private: - BYTE* _pdata; - size_t _cbyteOffset; - size_t _cbyteLength; + static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size) + { + size_t new_size = *old_size * 2; +#ifdef HAVE_STD__NOTHROW + BYTE *new_ptr = new BYTE[new_size]; +#else + BYTE *new_ptr = new BYTE[new_size]; +#endif + if (new_ptr == NULL) { + throw alloc_fail(); + } + + OFBitmanipTemplate::copyMem(old_ptr, new_ptr, *old_size); + + delete[] old_ptr; + + *old_size = new_size; + + return new_ptr; + } + + BYTE **_position; + size_t *_size; + size_t _current_offset; + size_t _cbytesWritten; LONG _icompLast; OFVector _segments; }; diff --git a/dcmjpls/libcharls/util.h b/dcmjpls/libcharls/util.h index b2a02a4a..4b39704f 100644 --- a/dcmjpls/libcharls/util.h +++ b/dcmjpls/libcharls/util.h @@ -22,6 +22,7 @@ #define ABS(a) (((a) > 0) ? (a) : -(a)) #endif +class alloc_fail { }; inline LONG log_2(LONG n) { diff --git a/dcmjpls/libsrc/djcodece.cc b/dcmjpls/libsrc/djcodece.cc index 261fec82..64686ff0 100644 --- a/dcmjpls/libsrc/djcodece.cc +++ b/dcmjpls/libsrc/djcodece.cc @@ -657,24 +657,20 @@ OFCondition DJLSEncoderBase::compressRawFrame( if (result.good()) { - // We have no idea how big the compressed pixel data will be and we have no - // way to find out, so we just allocate a buffer large enough for the raw data - // plus a little more for JPEG metadata. - // Yes, this is way too much for just a little JPEG metadata, but some - // test-images showed that the buffer previously was too small. Plus, at some - // places charls fails to do proper bounds checking and writes behind the end - // of the buffer (sometimes way behind its end...). + // The buffer is going to be dynamically reallocated if it's too small, so it doesn't matter that + // much what initial size we use. size_t size = frameSize + 1024; - Uint8 *buffer = new Uint8[size]; + BYTE *buffer = new BYTE[size]; - JLS_ERROR err = JpegLsEncode(buffer, size, &size, framePointer, frameSize, &jls_params); + size_t bytesWritten = 0; + + JLS_ERROR err = JpegLsEncode(&buffer, &size, &bytesWritten, framePointer, frameSize, &jls_params); result = DJLSError::convert(err); if (result.good()) { - // 'size' now contains the size of the compressed data in buffer - compressedSize = size; - result = pixelSequence->storeCompressedFrame(offsetList, buffer, size, fragmentSize); + compressedSize = bytesWritten; + result = pixelSequence->storeCompressedFrame(offsetList, buffer, compressedSize, fragmentSize); } delete[] buffer; @@ -1053,25 +1049,19 @@ OFCondition DJLSEncoderBase::compressCookedFrame( result = convertToUninterleaved(frameBuffer, buffer, samplesPerPixel, width, height, jls_params.bitspersample); } - // We have no idea how big the compressed pixel data will be and we have no - // way to find out, so we just allocate a buffer large enough for the raw data - // plus a little more for JPEG metadata. - // Yes, this is way too much for just a little JPEG metadata, but some - // test-images showed that the buffer previously was too small. Plus, at some - // places charls fails to do proper bounds checking and writes behind the end - // of the buffer (sometimes way behind its end...). size_t compressed_buffer_size = buffer_size + 1024; - Uint8 *compressed_buffer = new Uint8[compressed_buffer_size]; + BYTE *compressed_buffer = new BYTE[compressed_buffer_size]; + + size_t bytesWritten = 0; - JLS_ERROR err = JpegLsEncode(compressed_buffer, compressed_buffer_size, - &compressed_buffer_size, framePointer, buffer_size, &jls_params); + JLS_ERROR err = JpegLsEncode(&compressed_buffer, &compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params); result = DJLSError::convert(err); if (result.good()) { // 'compressed_buffer_size' now contains the size of the compressed data in buffer - compressedSize = compressed_buffer_size; - result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressed_buffer_size, fragmentSize); + compressedSize = bytesWritten; + result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressedSize, fragmentSize); } delete[] buffer; diff --git a/dcmnet/apps/Makefile.dep b/dcmnet/apps/Makefile.dep index d18e9312..bb92c416 100644 --- a/dcmnet/apps/Makefile.dep +++ b/dcmnet/apps/Makefile.dep @@ -675,7 +675,8 @@ storescp.o: storescp.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ - ../include/dcmtk/dcmnet/diutil.h ../include/dcmtk/dcmnet/dcasccfg.h \ + ../include/dcmtk/dcmnet/diutil.h ../include/dcmtk/dcmnet/dcmtrans.h \ + ../include/dcmtk/dcmnet/dcmlayer.h ../include/dcmtk/dcmnet/dcasccfg.h \ ../include/dcmtk/dcmnet/dccftsmp.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -694,7 +695,6 @@ storescp.o: storescp.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcostrmz.h \ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ ../../dcmtls/include/dcmtk/dcmtls/tlstrans.h \ - ../include/dcmtk/dcmnet/dcmtrans.h ../include/dcmtk/dcmnet/dcmlayer.h \ ../../dcmtls/include/dcmtk/dcmtls/tlsdefin.h \ ../../dcmtls/include/dcmtk/dcmtls/tlslayer.h storescu.o: storescu.cc ../../config/include/dcmtk/config/osconfig.h \ @@ -759,7 +759,8 @@ storescu.o: storescu.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ - ../include/dcmtk/dcmnet/diutil.h ../include/dcmtk/dcmnet/dcasccfg.h \ + ../include/dcmtk/dcmnet/diutil.h ../include/dcmtk/dcmnet/dcmtrans.h \ + ../include/dcmtk/dcmnet/dcmlayer.h ../include/dcmtk/dcmnet/dcasccfg.h \ ../include/dcmtk/dcmnet/dccftsmp.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -778,7 +779,6 @@ storescu.o: storescu.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcostrmz.h \ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ ../../dcmtls/include/dcmtk/dcmtls/tlstrans.h \ - ../include/dcmtk/dcmnet/dcmtrans.h ../include/dcmtk/dcmnet/dcmlayer.h \ ../../dcmtls/include/dcmtk/dcmtls/tlsdefin.h \ ../../dcmtls/include/dcmtk/dcmtls/tlslayer.h termscu.o: termscu.cc ../../config/include/dcmtk/config/osconfig.h \ diff --git a/dcmnet/apps/Makefile.in b/dcmnet/apps/Makefile.in index 592d308c..9a80242c 100644 --- a/dcmnet/apps/Makefile.in +++ b/dcmnet/apps/Makefile.in @@ -30,7 +30,7 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include \ LIBDIRS = -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc \ -L$(dcmdatadir)/libsrc -L$(dcmtlsdir)/libsrc $(compr_libdirs) LOCALLIBS = -ldcmnet -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(TCPWRAPPERLIBS) \ - $(ICONVLIBS) + $(CHARCONVLIBS) DCMTLSLIBS = -ldcmtls COMPR_LIBS = -ldcmjpls -lcharls -ldcmjpeg -lijg8 -lijg12 -lijg16 -ldcmimage -ldcmimgle diff --git a/dcmnet/apps/echoscu.cc b/dcmnet/apps/echoscu.cc index cd63fb7c..c486db1d 100644 --- a/dcmnet/apps/echoscu.cc +++ b/dcmnet/apps/echoscu.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -89,20 +89,22 @@ static const char* transferSyntaxes[] = { UID_JPEGProcess29TransferSyntax, UID_JPEGProcess14SV1TransferSyntax, UID_RLELosslessTransferSyntax, + UID_DeflatedExplicitVRLittleEndianTransferSyntax, UID_JPEGLSLosslessTransferSyntax, UID_JPEGLSLossyTransferSyntax, - UID_DeflatedExplicitVRLittleEndianTransferSyntax, UID_JPEG2000LosslessOnlyTransferSyntax, UID_JPEG2000TransferSyntax, - UID_MPEG2MainProfileAtMainLevelTransferSyntax, - UID_MPEG2MainProfileAtHighLevelTransferSyntax, UID_JPEG2000Part2MulticomponentImageCompressionLosslessOnlyTransferSyntax, UID_JPEG2000Part2MulticomponentImageCompressionTransferSyntax, + UID_MPEG2MainProfileAtMainLevelTransferSyntax, + UID_MPEG2MainProfileAtHighLevelTransferSyntax, UID_MPEG4HighProfileLevel4_1TransferSyntax, UID_MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax, UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax, UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax, - UID_MPEG4StereoHighProfileLevel4_2TransferSyntax + UID_MPEG4StereoHighProfileLevel4_2TransferSyntax, + UID_HEVCMainProfileLevel5_1TransferSyntax, + UID_HEVCMain10ProfileLevel5_1TransferSyntax }; // ******************************************** diff --git a/dcmnet/apps/getscu.cc b/dcmnet/apps/getscu.cc index ac0b2174..1e7f85ef 100644 --- a/dcmnet/apps/getscu.cc +++ b/dcmnet/apps/getscu.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2011-2013, OFFIS e.V. + * Copyright (C) 2011-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -145,6 +145,9 @@ main(int argc, char *argv[]) cmd.addOption("--prefer-mpeg2-high", "+xh", "prefer MPEG2 Main Profile @ High Level TS"); cmd.addOption("--prefer-mpeg4", "+xn", "prefer MPEG4 AVC/H.264 HP / Level 4.1 TS"); cmd.addOption("--prefer-mpeg4-bd", "+xl", "prefer MPEG4 AVC/H.264 BD-compatible TS"); + cmd.addOption("--prefer-mpeg4-2-2d", "+x2", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (2D)"); + cmd.addOption("--prefer-mpeg4-2-3d", "+x3", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (3D)"); + cmd.addOption("--prefer-mpeg4-2-st", "+xo", "prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS"); cmd.addOption("--prefer-rle", "+xr", "prefer RLE lossless TS"); #ifdef WITH_ZLIB cmd.addOption("--prefer-deflated", "+xd", "prefer deflated explicit VR little endian TS"); @@ -248,6 +251,9 @@ main(int argc, char *argv[]) if (cmd.findOption("--prefer-mpeg2-high")) opt_store_networkTransferSyntax = EXS_MPEG2MainProfileAtHighLevel; if (cmd.findOption("--prefer-mpeg4")) opt_store_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_1; if (cmd.findOption("--prefer-mpeg4-bd")) opt_store_networkTransferSyntax = EXS_MPEG4BDcompatibleHighProfileLevel4_1; + if (cmd.findOption("--prefer-mpeg4-2-2d")) opt_store_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For2DVideo; + if (cmd.findOption("--prefer-mpeg4-2-3d")) opt_store_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For3DVideo; + if (cmd.findOption("--prefer-mpeg4-2-st")) opt_store_networkTransferSyntax = EXS_MPEG4StereoHighProfileLevel4_2; if (cmd.findOption("--prefer-rle")) opt_store_networkTransferSyntax = EXS_RLELossless; #ifdef WITH_ZLIB if (cmd.findOption("--prefer-deflated")) opt_store_networkTransferSyntax = EXS_DeflatedLittleEndianExplicit; @@ -420,7 +426,7 @@ main(int argc, char *argv[]) /* do the real work, i.e. send C-GET requests and receive objects */ for (Uint16 repeat = 0; repeat < opt_repeatCount; repeat++) { - Uint16 numRuns = 1; + size_t numRuns = 1; DcmFileFormat dcmff; DcmDataset *dset = dcmff.getDataset(); OFListConstIterator(OFString) it; diff --git a/dcmnet/apps/movescu.cc b/dcmnet/apps/movescu.cc index 6c514be4..17271f9b 100644 --- a/dcmnet/apps/movescu.cc +++ b/dcmnet/apps/movescu.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -62,6 +62,26 @@ static char rcsid[] = "$dcmtk: " OFFIS_CONSOLE_APPLICATION " v" #define APPLICATIONTITLE "MOVESCU" #define PEERAPPLICATIONTITLE "ANY-SCP" +// general +#define EXITCODE_NO_ERROR 0 +#define EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 // this code is the default for printError() +#define EXITCODE_INSUFFICIENT_PRIVILEGES 2 +#define EXITCODE_SETUID_FAILED 3 + +// output file errors +#define EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 +#define EXITCODE_INVALID_OUTPUT_DIRECTORY 45 + +// network errors +#define EXITCODE_CANNOT_INITIALIZE_NETWORK 60 +#define EXITCODE_CANNOT_NEGOTIATE_ASSOCIATION 61 +#define EXITCODE_CANNOT_CREATE_ASSOC_PARAMETERS 65 +#define EXITCODE_NO_PRESENTATION_CONTEXT 66 +#define EXITCODE_CANNOT_CLOSE_ASSOCIATION 67 +#define EXITCODE_CMOVE_WARNING 68 +#define EXITCODE_CMOVE_ERROR 69 + + typedef enum { QMPatientRoot = 0, QMStudyRoot = 1, @@ -107,6 +127,7 @@ int opt_dimse_timeout = 0; int opt_acse_timeout = 30; OFBool opt_ignorePendingDatasets = OFTrue; OFString opt_outputDirectory = "."; +int cmove_status_code = EXITCODE_NO_ERROR; #ifdef WITH_ZLIB OFCmdUnsignedInt opt_compressionLevel = 0; @@ -176,7 +197,7 @@ addOverrideKey(OFConsoleApplication& app, const char *s) sprintf(msg2, "unknown tag: (%04x,%04x)", g, e); app.printError(msg2); } - DcmElement *elem = newDicomElement(tag); + DcmElement *elem = DcmItem::newDicomElement(tag); if (elem == NULL) { sprintf(msg2, "cannot create element for tag: (%04x,%04x)", g, e); app.printError(msg2); @@ -287,6 +308,9 @@ main(int argc, char *argv[]) cmd.addOption("--prefer-mpeg2-high", "+xh", "prefer MPEG2 Main Profile @ High Level TS"); cmd.addOption("--prefer-mpeg4", "+xn", "prefer MPEG4 AVC/H.264 HP / Level 4.1 TS"); cmd.addOption("--prefer-mpeg4-bd", "+xl", "prefer MPEG4 AVC/H.264 BD-compatible TS"); + cmd.addOption("--prefer-mpeg4-2-2d", "+x2", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (2D)"); + cmd.addOption("--prefer-mpeg4-2-3d", "+x3", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (3D)"); + cmd.addOption("--prefer-mpeg4-2-st", "+xo", "prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS"); cmd.addOption("--prefer-rle", "+xr", "prefer RLE lossless TS"); #ifdef WITH_ZLIB cmd.addOption("--prefer-deflated", "+xd", "prefer deflated explicit VR little endian TS"); @@ -397,7 +421,7 @@ main(int argc, char *argv[]) #ifdef WITH_TCPWRAPPER COUT << "- LIBWRAP" << OFendl; #endif - return 0; + return EXITCODE_NO_ERROR; } } @@ -445,6 +469,9 @@ main(int argc, char *argv[]) if (cmd.findOption("--prefer-mpeg2-high")) opt_in_networkTransferSyntax = EXS_MPEG2MainProfileAtHighLevel; if (cmd.findOption("--prefer-mpeg4")) opt_in_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_1; if (cmd.findOption("--prefer-mpeg4-bd")) opt_in_networkTransferSyntax = EXS_MPEG4BDcompatibleHighProfileLevel4_1; + if (cmd.findOption("--prefer-mpeg4-2-2d")) opt_in_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For2DVideo; + if (cmd.findOption("--prefer-mpeg4-2-3d")) opt_in_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For3DVideo; + if (cmd.findOption("--prefer-mpeg4-2-st")) opt_in_networkTransferSyntax = EXS_MPEG4StereoHighProfileLevel4_2; if (cmd.findOption("--prefer-rle")) opt_in_networkTransferSyntax = EXS_RLELossless; #ifdef WITH_ZLIB if (cmd.findOption("--prefer-deflated")) opt_in_networkTransferSyntax = EXS_DeflatedLittleEndianExplicit; @@ -544,6 +571,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-little", "--prefer-mpeg2-high", opt_in_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-little", "--prefer-mpeg4", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-little", "--prefer-mpeg4-bd", opt_in_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-2d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-3d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-st", opt_in_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-little", "--prefer-rle", opt_in_networkTransferSyntax == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. opt_writeTransferSyntax = EXS_LittleEndianExplicit; @@ -563,6 +593,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-big", "--prefer-mpeg2-high", opt_in_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-big", "--prefer-mpeg4", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-big", "--prefer-mpeg4-bd", opt_in_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-2d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-3d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-st", opt_in_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-big", "--prefer-rle", opt_in_networkTransferSyntax == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. opt_writeTransferSyntax = EXS_BigEndianExplicit; @@ -582,6 +615,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-implicit", "--prefer-mpeg2-high", opt_in_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-bd", opt_in_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-2d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-3d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-st", opt_in_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-implicit", "--prefer-rle", opt_in_networkTransferSyntax == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. opt_writeTransferSyntax = EXS_LittleEndianImplicit; @@ -602,6 +638,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-deflated", "--prefer-mpeg2-high", opt_in_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-bd", opt_in_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-2d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-3d", opt_in_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-st", opt_in_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-deflated", "--prefer-rle", opt_in_networkTransferSyntax == EXS_RLELossless); opt_writeTransferSyntax = EXS_DeflatedLittleEndianExplicit; } @@ -715,12 +754,12 @@ main(int argc, char *argv[]) if (!OFStandard::dirExists(opt_outputDirectory)) { OFLOG_FATAL(movescuLogger, "specified output directory does not exist"); - return 1; + return EXITCODE_INVALID_OUTPUT_DIRECTORY; } else if (!OFStandard::isWriteable(opt_outputDirectory)) { OFLOG_FATAL(movescuLogger, "specified output directory is not writeable"); - return 1; + return EXITCODE_CANNOT_WRITE_OUTPUT_FILE; } } @@ -731,7 +770,7 @@ main(int argc, char *argv[]) if (geteuid() != 0) { OFLOG_FATAL(movescuLogger, "cannot listen on port " << opt_retrievePort << ", insufficient privileges"); - return 1; + return EXITCODE_INSUFFICIENT_PRIVILEGES; } } #endif @@ -743,21 +782,21 @@ main(int argc, char *argv[]) if (cond.bad()) { OFLOG_FATAL(movescuLogger, "cannot create network: " << DimseCondition::dump(temp_str, cond)); - return 1; + return EXITCODE_CANNOT_INITIALIZE_NETWORK; } /* drop root privileges now and revert to the calling user id (if we are running as setuid root) */ if (OFStandard::dropPrivileges().bad()) { OFLOG_FATAL(movescuLogger, "setuid() failed, maximum number of processes/threads for uid already running."); - return 1; + return EXITCODE_SETUID_FAILED; } /* set up main association */ cond = ASC_createAssociationParameters(¶ms, opt_maxPDU); if (cond.bad()) { OFLOG_FATAL(movescuLogger, DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CREATE_ASSOC_PARAMETERS); } ASC_setAPTitles(params, opt_ourTitle, opt_peerTitle, NULL); @@ -776,7 +815,7 @@ main(int argc, char *argv[]) querySyntax[opt_queryModel].moveSyntax); if (cond.bad()) { OFLOG_FATAL(movescuLogger, DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CREATE_ASSOC_PARAMETERS); } OFLOG_DEBUG(movescuLogger, "Request Parameters:" << OFendl << ASC_dumpParameters(temp_str, params, ASC_ASSOC_RQ)); @@ -791,11 +830,11 @@ main(int argc, char *argv[]) ASC_getRejectParameters(params, &rej); OFLOG_FATAL(movescuLogger, "Association Rejected:"); OFLOG_FATAL(movescuLogger, ASC_printRejectParameters(temp_str, &rej)); - exit(1); + exit(EXITCODE_CANNOT_NEGOTIATE_ASSOCIATION); } else { OFLOG_FATAL(movescuLogger, "Association Request Failed:"); OFLOG_FATAL(movescuLogger, DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_NEGOTIATE_ASSOCIATION); } } /* what has been accepted/refused ? */ @@ -803,7 +842,7 @@ main(int argc, char *argv[]) if (ASC_countAcceptedPresentationContexts(params) == 0) { OFLOG_FATAL(movescuLogger, "No Acceptable Presentation Contexts"); - exit(1); + exit(EXITCODE_NO_PRESENTATION_CONTEXT); } OFLOG_INFO(movescuLogger, "Association Accepted (Max Send PDV: " << assoc->sendPDVLength << ")"); @@ -832,7 +871,7 @@ main(int argc, char *argv[]) cond = ASC_abortAssociation(assoc); if (cond.bad()) { OFLOG_FATAL(movescuLogger, "Association Abort Failed: " << DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CLOSE_ASSOCIATION); } } else { /* release association */ @@ -842,7 +881,7 @@ main(int argc, char *argv[]) { OFLOG_FATAL(movescuLogger, "Association Release Failed:"); OFLOG_FATAL(movescuLogger, DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CLOSE_ASSOCIATION); } } } @@ -853,7 +892,7 @@ main(int argc, char *argv[]) cond = ASC_abortAssociation(assoc); if (cond.bad()) { OFLOG_FATAL(movescuLogger, "Association Abort Failed: " << DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CLOSE_ASSOCIATION); } } else if (cond == DUL_PEERABORTEDASSOCIATION) @@ -867,26 +906,26 @@ main(int argc, char *argv[]) cond = ASC_abortAssociation(assoc); if (cond.bad()) { OFLOG_FATAL(movescuLogger, "Association Abort Failed: " << DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CLOSE_ASSOCIATION); } } cond = ASC_destroyAssociation(&assoc); if (cond.bad()) { OFLOG_FATAL(movescuLogger, DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CLOSE_ASSOCIATION); } cond = ASC_dropNetwork(&net); if (cond.bad()) { OFLOG_FATAL(movescuLogger, DimseCondition::dump(temp_str, cond)); - exit(1); + exit(EXITCODE_CANNOT_CLOSE_ASSOCIATION); } #ifdef HAVE_WINSOCK_H WSACleanup(); #endif - return 0; + return cmove_status_code; } @@ -971,7 +1010,9 @@ acceptSubAssoc(T_ASC_Network *aNet, T_ASC_Association **assoc) const char *knownAbstractSyntaxes[] = { UID_VerificationSOPClass }; - const char *transferSyntaxes[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; + const char* transferSyntaxes[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, // 10 + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, // 20 + NULL }; // +1 int numTransferSyntaxes; OFString temp_str; @@ -1090,6 +1131,30 @@ acceptSubAssoc(T_ASC_Network *aNet, T_ASC_Association **assoc) transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; numTransferSyntaxes = 4; break; + case EXS_MPEG4HighProfileLevel4_2_For2DVideo: + /* we prefer MPEG4 HP/L4.2 for 2D Videos */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; + case EXS_MPEG4HighProfileLevel4_2_For3DVideo: + /* we prefer MPEG4 HP/L4.2 for 3D Vidoes */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; + case EXS_MPEG4StereoHighProfileLevel4_2: + /* we prefer MPEG4 Stereo HP/L4.2 */ + transferSyntaxes[0] = UID_MPEG4StereoHighProfileLevel4_2TransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; case EXS_RLELossless: /* we prefer RLE Lossless */ transferSyntaxes[0] = UID_RLELosslessTransferSyntax; @@ -1126,17 +1191,22 @@ acceptSubAssoc(T_ASC_Network *aNet, T_ASC_Association **assoc) transferSyntaxes[9] = UID_MPEG2MainProfileAtHighLevelTransferSyntax; transferSyntaxes[10] = UID_MPEG4HighProfileLevel4_1TransferSyntax; transferSyntaxes[11] = UID_MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax; - transferSyntaxes[12] = UID_DeflatedExplicitVRLittleEndianTransferSyntax; + transferSyntaxes[12] = UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax; + transferSyntaxes[13] = UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax; + transferSyntaxes[14] = UID_MPEG4StereoHighProfileLevel4_2TransferSyntax; + transferSyntaxes[15] = UID_HEVCMainProfileLevel5_1TransferSyntax; + transferSyntaxes[16] = UID_HEVCMain10ProfileLevel5_1TransferSyntax; + transferSyntaxes[17] = UID_DeflatedExplicitVRLittleEndianTransferSyntax; if (gLocalByteOrder == EBO_LittleEndian) { - transferSyntaxes[13] = UID_LittleEndianExplicitTransferSyntax; - transferSyntaxes[14] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[18] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[19] = UID_BigEndianExplicitTransferSyntax; } else { - transferSyntaxes[13] = UID_BigEndianExplicitTransferSyntax; - transferSyntaxes[14] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[18] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[19] = UID_LittleEndianExplicitTransferSyntax; } - transferSyntaxes[15] = UID_LittleEndianImplicitTransferSyntax; - numTransferSyntaxes = 16; + transferSyntaxes[20] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 21; } else { /* We prefer explicit transfer syntaxes. * If we are running on a Little Endian machine we prefer @@ -1168,7 +1238,7 @@ acceptSubAssoc(T_ASC_Network *aNet, T_ASC_Association **assoc) /* the array of Storage SOP Class UIDs comes from dcuid.h */ cond = ASC_acceptContextsWithPreferredTransferSyntaxes( (*assoc)->params, - dcmAllStorageSOPClassUIDs, numberOfAllDcmStorageSOPClassUIDs, + dcmAllStorageSOPClassUIDs, numberOfDcmAllStorageSOPClassUIDs, transferSyntaxes, numTransferSyntaxes); } } @@ -1596,6 +1666,26 @@ moveSCU(T_ASC_Association *assoc, const char *fname) NULL, &rsp, &statusDetail, &rspIds, opt_ignorePendingDatasets); if (cond == EC_Normal) { + + // check if the C-MOVE-RSP message indicated an error + if ((rsp.DimseStatus == STATUS_Success) || + (rsp.DimseStatus == STATUS_MOVE_Cancel_SubOperationsTerminatedDueToCancelIndication)) + { + // status is "success" or "cancel", nothing to do. + } + else if (rsp.DimseStatus == STATUS_MOVE_Warning_SubOperationsCompleteOneOrMoreFailures) + { + // status is "warn". Make sure the application ends with a non-zero return code. + if (EXITCODE_NO_ERROR == cmove_status_code) cmove_status_code = EXITCODE_CMOVE_WARNING; + OFLOG_WARN(movescuLogger, "Move response with warning status (" << DU_cmoveStatusString(rsp.DimseStatus) << ")"); + } + else + { + // status is "failed" or "refused" + cmove_status_code = EXITCODE_CMOVE_ERROR; + OFLOG_WARN(movescuLogger, "Move response with error status (" << DU_cmoveStatusString(rsp.DimseStatus) << ")"); + } + if (movescuLogger.isEnabledFor(OFLogger::DEBUG_LOG_LEVEL)) { OFLOG_INFO(movescuLogger, "Received Final Move Response"); OFLOG_DEBUG(movescuLogger, DIMSE_dumpMessage(temp_str, rsp, DIMSE_INCOMING)); diff --git a/dcmnet/apps/storescp.cc b/dcmnet/apps/storescp.cc index 368ffd3d..0a6678a1 100644 --- a/dcmnet/apps/storescp.cc +++ b/dcmnet/apps/storescp.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2014, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -55,6 +55,7 @@ END_EXTERN_C #include "dcmtk/dcmnet/dicom.h" /* for DICOM_APPLICATION_ACCEPTOR */ #include "dcmtk/dcmnet/dimse.h" #include "dcmtk/dcmnet/diutil.h" +#include "dcmtk/dcmnet/dcmtrans.h" /* for dcmSocketSend/ReceiveTimeout */ #include "dcmtk/dcmnet/dcasccfg.h" /* for class DcmAssociationConfiguration */ #include "dcmtk/dcmnet/dcasccff.h" /* for class DcmAssociationConfigurationFile */ #include "dcmtk/dcmdata/dcfilefo.h" @@ -179,6 +180,7 @@ static const char *opt_profileName = NULL; T_DIMSE_BlockingMode opt_blockMode = DIMSE_BLOCKING; int opt_dimse_timeout = 0; int opt_acse_timeout = 30; +OFCmdSignedInt opt_socket_timeout = 60; #if defined(HAVE_FORK) || defined(_WIN32) OFBool opt_forkMode = OFFalse; @@ -221,6 +223,13 @@ extern "C" void sigChildHandler(int) #endif +/* helper macro for converting stream output to a string */ +#define CONVERT_TO_STRING(output, string) \ + optStream.str(""); \ + optStream.clear(); \ + optStream << output << OFStringStream_ends; \ + OFSTRINGSTREAM_GETOFSTRING(optStream, string) + #define SHORTCOL 4 #define LONGCOL 21 @@ -242,8 +251,9 @@ int main(int argc, char *argv[]) WSAStartup(winSockVersionNeeded, &winSockData); #endif - char tempstr[20]; OFString temp_str; + OFOStringStream optStream; + OFConsoleApplication app(OFFIS_CONSOLE_APPLICATION, "DICOM storage (C-STORE) SCP", rcsid); OFCommandLine cmd; @@ -285,6 +295,9 @@ int main(int argc, char *argv[]) cmd.addOption("--prefer-mpeg2-high", "+xh", "prefer MPEG2 Main Profile @ High Level TS"); cmd.addOption("--prefer-mpeg4", "+xn", "prefer MPEG4 AVC/H.264 HP / Level 4.1 TS"); cmd.addOption("--prefer-mpeg4-bd", "+xl", "prefer MPEG4 AVC/H.264 BD-compatible TS"); + cmd.addOption("--prefer-mpeg4-2-2d", "+x2", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (2D)"); + cmd.addOption("--prefer-mpeg4-2-3d", "+x3", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (3D)"); + cmd.addOption("--prefer-mpeg4-2-st", "+xo", "prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS"); cmd.addOption("--prefer-rle", "+xr", "prefer RLE lossless TS"); #ifdef WITH_ZLIB cmd.addOption("--prefer-deflated", "+xd", "prefer deflated expl. VR little endian TS"); @@ -303,26 +316,16 @@ int main(int argc, char *argv[]) // this option is only offered on Posix platforms cmd.addOption("--inetd", "-id", "run from inetd super server (not with --fork)"); #endif - - cmd.addOption("--acse-timeout", "-ta", 1, "[s]econds: integer (default: 30)", "timeout for ACSE messages"); + CONVERT_TO_STRING("[s]econds: integer (default: " << opt_socket_timeout << ")", optString1); + cmd.addOption("--socket-timeout", "-ts", 1, optString1.c_str(), "timeout for network socket (0 for none)"); + CONVERT_TO_STRING("[s]econds: integer (default: " << opt_acse_timeout << ")", optString2); + cmd.addOption("--acse-timeout", "-ta", 1, optString2.c_str(), "timeout for ACSE messages"); cmd.addOption("--dimse-timeout", "-td", 1, "[s]econds: integer (default: unlimited)", "timeout for DIMSE messages"); + cmd.addOption("--aetitle", "-aet", 1, "[a]etitle: string", "set my AE title (default: " APPLICATIONTITLE ")"); + CONVERT_TO_STRING("[n]umber of bytes: integer (" << ASC_MINIMUMPDUSIZE << ".." << ASC_MAXIMUMPDUSIZE << ")", optString3); + CONVERT_TO_STRING("set max receive pdu to n bytes (default: " << opt_maxPDU << ")", optString4); + cmd.addOption("--max-pdu", "-pdu", 1, optString3.c_str(), optString4.c_str()); - OFString opt1 = "set my AE title (default: "; - opt1 += APPLICATIONTITLE; - opt1 += ")"; - cmd.addOption("--aetitle", "-aet", 1, "[a]etitle: string", opt1.c_str()); - OFString opt3 = "set max receive pdu to n bytes (def.: "; - sprintf(tempstr, "%ld", OFstatic_cast(long, ASC_DEFAULTMAXPDU)); - opt3 += tempstr; - opt3 += ")"; - OFString opt4 = "[n]umber of bytes: integer ("; - sprintf(tempstr, "%ld", OFstatic_cast(long, ASC_MINIMUMPDUSIZE)); - opt4 += tempstr; - opt4 += ".."; - sprintf(tempstr, "%ld", OFstatic_cast(long, ASC_MAXIMUMPDUSIZE)); - opt4 += tempstr; - opt4 += ")"; - cmd.addOption("--max-pdu", "-pdu", 1, opt4.c_str(), opt3.c_str()); cmd.addOption("--disable-host-lookup", "-dhl", "disable hostname lookup"); cmd.addOption("--refuse", "refuse association"); cmd.addOption("--reject", "reject association if no implement. class UID"); @@ -553,6 +556,9 @@ int main(int argc, char *argv[]) if (cmd.findOption("--prefer-mpeg2-high")) opt_networkTransferSyntax = EXS_MPEG2MainProfileAtHighLevel; if (cmd.findOption("--prefer-mpeg4")) opt_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_1; if (cmd.findOption("--prefer-mpeg4-bd")) opt_networkTransferSyntax = EXS_MPEG4BDcompatibleHighProfileLevel4_1; + if (cmd.findOption("--prefer-mpeg4-2-2d")) opt_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For2DVideo; + if (cmd.findOption("--prefer-mpeg4-2-3d")) opt_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For3DVideo; + if (cmd.findOption("--prefer-mpeg4-2-st")) opt_networkTransferSyntax = EXS_MPEG4StereoHighProfileLevel4_2; if (cmd.findOption("--prefer-rle")) opt_networkTransferSyntax = EXS_RLELossless; #ifdef WITH_ZLIB if (cmd.findOption("--prefer-deflated")) opt_networkTransferSyntax = EXS_DeflatedLittleEndianExplicit; @@ -566,6 +572,12 @@ int main(int argc, char *argv[]) cmd.endOptionBlock(); if (opt_networkTransferSyntax != EXS_Unknown) opt_acceptAllXfers = OFFalse; + if (cmd.findOption("--socket-timeout")) + app.checkValue(cmd.getValueAndCheckMin(opt_socket_timeout, -1)); + // always set the timeout values since the global default might be different + dcmSocketSendTimeout.set(OFstatic_cast(Sint32, opt_socket_timeout)); + dcmSocketReceiveTimeout.set(OFstatic_cast(Sint32, opt_socket_timeout)); + if (cmd.findOption("--acse-timeout")) { OFCmdSignedInt opt_timeout = 0; @@ -609,6 +621,9 @@ int main(int argc, char *argv[]) app.checkConflict("--config-file", "--prefer-mpeg2-high", opt_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--config-file", "--prefer-mpeg4", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--config-file", "--prefer-mpeg4-bd", opt_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--config-file", "--prefer-mpeg4-2-2d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--config-file", "--prefer-mpeg4-2-3d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--config-file", "--prefer-mpeg4-2-st", opt_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--config-file", "--prefer-rle", opt_networkTransferSyntax == EXS_RLELossless); #ifdef WITH_ZLIB app.checkConflict("--config-file", "--prefer-deflated", opt_networkTransferSyntax == EXS_DeflatedLittleEndianExplicit); @@ -687,6 +702,9 @@ int main(int argc, char *argv[]) app.checkConflict("--write-xfer-little", "--prefer-mpeg2-high", opt_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-little", "--prefer-mpeg4", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-little", "--prefer-mpeg4-bd", opt_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-2d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-3d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-st", opt_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-little", "--prefer-rle", opt_networkTransferSyntax == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. opt_writeTransferSyntax = EXS_LittleEndianExplicit; @@ -706,6 +724,9 @@ int main(int argc, char *argv[]) app.checkConflict("--write-xfer-big", "--prefer-mpeg2-high", opt_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-big", "--prefer-mpeg4", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-big", "--prefer-mpeg4-bd", opt_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-2d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-3d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-st", opt_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-big", "--prefer-rle", opt_networkTransferSyntax == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. opt_writeTransferSyntax = EXS_BigEndianExplicit; @@ -725,6 +746,9 @@ int main(int argc, char *argv[]) app.checkConflict("--write-xfer-implicit", "--prefer-mpeg2-high", opt_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-bd", opt_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-2d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-3d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-st", opt_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-implicit", "--prefer-rle", opt_networkTransferSyntax == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. opt_writeTransferSyntax = EXS_LittleEndianImplicit; @@ -745,6 +769,9 @@ int main(int argc, char *argv[]) app.checkConflict("--write-xfer-deflated", "--prefer-mpeg2-high", opt_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-bd", opt_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-2d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-3d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-st", opt_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-deflated", "--prefer-rle", opt_networkTransferSyntax == EXS_RLELossless); opt_writeTransferSyntax = EXS_DeflatedLittleEndianExplicit; } @@ -1031,7 +1058,7 @@ int main(int argc, char *argv[]) // read socket handle number from stdin, i.e. the anonymous pipe // to which our parent process has written the handle number. - if (ReadFile(hStdIn, buf, sizeof(buf), &bytesRead, NULL)) + if (ReadFile(hStdIn, buf, sizeof(buf) - 1, &bytesRead, NULL)) { // make sure buffer is zero terminated buf[bytesRead] = '\0'; @@ -1216,7 +1243,9 @@ static OFCondition acceptAssociation(T_ASC_Network *net, DcmAssociationConfigura UID_VerificationSOPClass }; - const char* transferSyntaxes[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; + const char* transferSyntaxes[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, // 10 + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, // 20 + NULL }; // +1 int numTransferSyntaxes = 0; // try to receive an association. Here we either want to use blocking or @@ -1420,6 +1449,30 @@ static OFCondition acceptAssociation(T_ASC_Network *net, DcmAssociationConfigura transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; numTransferSyntaxes = 4; break; + case EXS_MPEG4HighProfileLevel4_2_For2DVideo: + /* we prefer MPEG4 HP/L4.2 for 2d Videos */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; + case EXS_MPEG4HighProfileLevel4_2_For3DVideo: + /* we prefer MPEG4 HP/L4.2 for 3d Videos */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; + case EXS_MPEG4StereoHighProfileLevel4_2: + /* we prefer MPEG4 Stereo HP/L4.2 */ + transferSyntaxes[0] = UID_MPEG4StereoHighProfileLevel4_2TransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; case EXS_RLELossless: /* we prefer RLE Lossless */ transferSyntaxes[0] = UID_RLELosslessTransferSyntax; @@ -1459,17 +1512,19 @@ static OFCondition acceptAssociation(T_ASC_Network *net, DcmAssociationConfigura transferSyntaxes[12] = UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax; transferSyntaxes[13] = UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax; transferSyntaxes[14] = UID_MPEG4StereoHighProfileLevel4_2TransferSyntax; - transferSyntaxes[15] = UID_DeflatedExplicitVRLittleEndianTransferSyntax; + transferSyntaxes[15] = UID_HEVCMainProfileLevel5_1TransferSyntax; + transferSyntaxes[16] = UID_HEVCMain10ProfileLevel5_1TransferSyntax; + transferSyntaxes[17] = UID_DeflatedExplicitVRLittleEndianTransferSyntax; if (gLocalByteOrder == EBO_LittleEndian) { - transferSyntaxes[16] = UID_LittleEndianExplicitTransferSyntax; - transferSyntaxes[17] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[18] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[19] = UID_BigEndianExplicitTransferSyntax; } else { - transferSyntaxes[16] = UID_BigEndianExplicitTransferSyntax; - transferSyntaxes[17] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[18] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[19] = UID_LittleEndianExplicitTransferSyntax; } - transferSyntaxes[18] = UID_LittleEndianImplicitTransferSyntax; - numTransferSyntaxes = 19; + transferSyntaxes[20] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 21; } else { /* We prefer explicit transfer syntaxes. * If we are running on a Little Endian machine we prefer @@ -1520,7 +1575,7 @@ static OFCondition acceptAssociation(T_ASC_Network *net, DcmAssociationConfigura } /* the array of Storage SOP Class UIDs comes from dcuid.h */ - cond = ASC_acceptContextsWithPreferredTransferSyntaxes( assoc->params, dcmAllStorageSOPClassUIDs, numberOfAllDcmStorageSOPClassUIDs, transferSyntaxes, numTransferSyntaxes); + cond = ASC_acceptContextsWithPreferredTransferSyntaxes( assoc->params, dcmAllStorageSOPClassUIDs, numberOfDcmAllStorageSOPClassUIDs, transferSyntaxes, numTransferSyntaxes); if (cond.bad()) { OFLOG_DEBUG(storescpLogger, DimseCondition::dump(temp_str, cond)); diff --git a/dcmnet/apps/storescu.cc b/dcmnet/apps/storescu.cc index 82a38388..91e33c58 100644 --- a/dcmnet/apps/storescu.cc +++ b/dcmnet/apps/storescu.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2013, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -44,6 +44,7 @@ END_EXTERN_C #include "dcmtk/dcmnet/dicom.h" /* for DICOM_APPLICATION_REQUESTOR */ #include "dcmtk/dcmnet/dimse.h" #include "dcmtk/dcmnet/diutil.h" +#include "dcmtk/dcmnet/dcmtrans.h" /* for dcmSocketSend/ReceiveTimeout */ #include "dcmtk/dcmnet/dcasccfg.h" /* for class DcmAssociationConfiguration */ #include "dcmtk/dcmnet/dcasccff.h" /* for class DcmAssociationConfigurationFile */ #include "dcmtk/dcmdata/dcdatset.h" @@ -124,6 +125,7 @@ static const char *opt_profileName = NULL; T_DIMSE_BlockingMode opt_blockMode = DIMSE_BLOCKING; int opt_dimse_timeout = 0; int opt_acse_timeout = 30; +OFCmdSignedInt opt_socket_timeout = 60; #ifdef WITH_ZLIB static OFCmdUnsignedInt opt_compressionLevel = 0; @@ -258,10 +260,13 @@ int main(int argc, char *argv[]) cmd.addOption("--propose-j2k-lossy", "-xw", "propose JPEG 2000 lossy TS\nand all uncompressed transfer syntaxes"); cmd.addOption("--propose-jls-lossless", "-xt", "propose JPEG-LS lossless TS\nand all uncompressed transfer syntaxes"); cmd.addOption("--propose-jls-lossy", "-xu", "propose JPEG-LS lossy TS\nand all uncompressed transfer syntaxes"); - cmd.addOption("--propose-mpeg2", "-xm", "propose MPEG2 Main Profile @ Main Level TS only"); - cmd.addOption("--propose-mpeg2-high", "-xh", "propose MPEG2 Main Profile @ High Level TS only"); - cmd.addOption("--propose-mpeg4", "-xn", "propose MPEG4 AVC/H.264 HP / Level 4.1 TS only"); - cmd.addOption("--propose-mpeg4-bd", "-xl", "propose MPEG4 AVC/H.264 BD-compatible TS only"); + cmd.addOption("--propose-mpeg2", "-xm", "propose MPEG2 Main Profile @ Main Level TS"); + cmd.addOption("--propose-mpeg2-high", "-xh", "propose MPEG2 Main Profile @ High Level TS"); + cmd.addOption("--propose-mpeg4", "-xn", "propose MPEG4 AVC/H.264 HP / Level 4.1 TS"); + cmd.addOption("--propose-mpeg4-bd", "-xl", "propose MPEG4 AVC/H.264 BD-compatible TS"); + cmd.addOption("--propose-mpeg4-2-2d", "-x2", "propose MPEG4 AVC/H.264 HP / Level 4.2 TS (2D)"); + cmd.addOption("--propose-mpeg4-2-3d", "-x3", "propose MPEG4 AVC/H.264 HP / Level 4.2 TS (3D)"); + cmd.addOption("--propose-mpeg4-2-st", "-xo", "propose MPEG4 AVC/H.264 Stereo / Level 4.2 TS"); cmd.addOption("--propose-rle", "-xr", "propose RLE lossless TS\nand all uncompressed transfer syntaxes"); #ifdef WITH_ZLIB cmd.addOption("--propose-deflated", "-xd", "propose deflated expl. VR little endian TS\nand all uncompressed transfer syntaxes"); @@ -289,25 +294,27 @@ int main(int argc, char *argv[]) cmd.addOption("--pos-response", "-rsp", "expect positive response"); cmd.addSubGroup("other network options:"); cmd.addOption("--timeout", "-to", 1, "[s]econds: integer (default: unlimited)", "timeout for connection requests"); - CONVERT_TO_STRING("[s]econds: integer (default: " << opt_acse_timeout << ")", optString1); - cmd.addOption("--acse-timeout", "-ta", 1, optString1.c_str(), "timeout for ACSE messages"); + CONVERT_TO_STRING("[s]econds: integer (default: " << opt_socket_timeout << ")", optString1); + cmd.addOption("--socket-timeout", "-ts", 1, optString1.c_str(), "timeout for network socket (0 for none)"); + CONVERT_TO_STRING("[s]econds: integer (default: " << opt_acse_timeout << ")", optString2); + cmd.addOption("--acse-timeout", "-ta", 1, optString2.c_str(), "timeout for ACSE messages"); cmd.addOption("--dimse-timeout", "-td", 1, "[s]econds: integer (default: unlimited)", "timeout for DIMSE messages"); - CONVERT_TO_STRING("[n]umber of bytes: integer (" << ASC_MINIMUMPDUSIZE << ".." << ASC_MAXIMUMPDUSIZE << ")", optString2); - CONVERT_TO_STRING("set max receive pdu to n bytes (default: " << opt_maxReceivePDULength << ")", optString3); - cmd.addOption("--max-pdu", "-pdu", 1, optString2.c_str(), optString3.c_str()); - cmd.addOption("--max-send-pdu", 1, optString2.c_str(), "restrict max send pdu to n bytes"); + CONVERT_TO_STRING("[n]umber of bytes: integer (" << ASC_MINIMUMPDUSIZE << ".." << ASC_MAXIMUMPDUSIZE << ")", optString3); + CONVERT_TO_STRING("set max receive pdu to n bytes (default: " << opt_maxReceivePDULength << ")", optString4); + cmd.addOption("--max-pdu", "-pdu", 1, optString3.c_str(), optString4.c_str()); + cmd.addOption("--max-send-pdu", 1, optString3.c_str(), "restrict max send pdu to n bytes"); cmd.addOption("--repeat", 1, "[n]umber: integer", "repeat n times"); cmd.addOption("--abort", "abort association instead of releasing it"); cmd.addOption("--no-halt", "-nh", "do not halt if unsuccessful store encountered\n(default: do halt)"); cmd.addOption("--uid-padding", "-up", "silently correct space-padded UIDs"); cmd.addOption("--invent-instance", "+II", "invent a new SOP instance UID for every image\nsent"); - CONVERT_TO_STRING("invent a new series UID after n images" << OFendl << "have been sent (default: " << opt_inventSeriesCount << ")", optString4); - cmd.addOption("--invent-series", "+IR", 1, "[n]umber: integer (implies --invent-instance)", optString4.c_str()); - CONVERT_TO_STRING("invent a new study UID after n series" << OFendl << "have been sent (default: " << opt_inventStudyCount << ")", optString5); - cmd.addOption("--invent-study", "+IS", 1, "[n]umber: integer (implies --invent-instance)", optString5.c_str()); - CONVERT_TO_STRING("invent a new patient ID and name after n studies" << OFendl << "have been sent (default: " << opt_inventPatientCount << ")", optString6); - cmd.addOption("--invent-patient", "+IP", 1, "[n]umber: integer (implies --invent-instance)", optString6.c_str()); + CONVERT_TO_STRING("invent a new series UID after n images" << OFendl << "have been sent (default: " << opt_inventSeriesCount << ")", optString5); + cmd.addOption("--invent-series", "+IR", 1, "[n]umber: integer (implies --invent-instance)", optString5.c_str()); + CONVERT_TO_STRING("invent a new study UID after n series" << OFendl << "have been sent (default: " << opt_inventStudyCount << ")", optString6); + cmd.addOption("--invent-study", "+IS", 1, "[n]umber: integer (implies --invent-instance)", optString6.c_str()); + CONVERT_TO_STRING("invent a new patient ID and name after n studies" << OFendl << "have been sent (default: " << opt_inventPatientCount << ")", optString7); + cmd.addOption("--invent-patient", "+IP", 1, "[n]umber: integer (implies --invent-instance)", optString7.c_str()); #ifdef WITH_OPENSSL cmd.addGroup("transport layer security (TLS) options:"); @@ -430,6 +437,9 @@ int main(int argc, char *argv[]) if (cmd.findOption("--propose-mpeg2-high")) opt_networkTransferSyntax = EXS_MPEG2MainProfileAtHighLevel; if (cmd.findOption("--propose-mpeg4")) opt_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_1; if (cmd.findOption("--propose-mpeg4-bd")) opt_networkTransferSyntax = EXS_MPEG4BDcompatibleHighProfileLevel4_1; + if (cmd.findOption("--propose-mpeg4-2-2d")) opt_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For2DVideo; + if (cmd.findOption("--propose-mpeg4-2-3d")) opt_networkTransferSyntax = EXS_MPEG4HighProfileLevel4_2_For3DVideo; + if (cmd.findOption("--propose-mpeg4-2-st")) opt_networkTransferSyntax = EXS_MPEG4StereoHighProfileLevel4_2; if (cmd.findOption("--propose-rle")) opt_networkTransferSyntax = EXS_RLELossless; #ifdef WITH_ZLIB if (cmd.findOption("--propose-deflated")) opt_networkTransferSyntax = EXS_DeflatedLittleEndianExplicit; @@ -456,6 +466,9 @@ int main(int argc, char *argv[]) app.checkConflict("--config-file", "--propose-mpeg2-high", opt_networkTransferSyntax == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--config-file", "--propose-mpeg4", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--config-file", "--propose-mpeg4-bd", opt_networkTransferSyntax == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--config-file", "--propose-mpeg4-2-2d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--config-file", "--propose-mpeg4-2-3d", opt_networkTransferSyntax == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--config-file", "--propose-mpeg4-2-st", opt_networkTransferSyntax == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--config-file", "--propose-rle", opt_networkTransferSyntax == EXS_RLELossless); #ifdef WITH_ZLIB app.checkConflict("--config-file", "--propose-deflated", opt_networkTransferSyntax == EXS_DeflatedLittleEndianExplicit); @@ -497,6 +510,12 @@ int main(int argc, char *argv[]) dcmConnectionTimeout.set(OFstatic_cast(Sint32, opt_timeout)); } + if (cmd.findOption("--socket-timeout")) + app.checkValue(cmd.getValueAndCheckMin(opt_socket_timeout, -1)); + // always set the timeout values since the global default might be different + dcmSocketSendTimeout.set(OFstatic_cast(Sint32, opt_socket_timeout)); + dcmSocketReceiveTimeout.set(OFstatic_cast(Sint32, opt_socket_timeout)); + if (cmd.findOption("--acse-timeout")) { OFCmdSignedInt opt_timeout = 0; @@ -744,7 +763,7 @@ int main(int argc, char *argv[]) else OFLOG_WARN(storescuLogger, errormsg << ", ignoring file"); } - else if (!dcmIsaStorageSOPClassUID(sopClassUID)) + else if (!dcmIsaStorageSOPClassUID(sopClassUID, ESSC_All)) { ignoreName = OFTrue; errormsg = "unknown storage SOP class in file: "; @@ -1216,7 +1235,10 @@ addStoragePresentationContexts(T_ASC_Parameters *params, (opt_networkTransferSyntax != EXS_MPEG2MainProfileAtMainLevel) && (opt_networkTransferSyntax != EXS_MPEG2MainProfileAtHighLevel) && (opt_networkTransferSyntax != EXS_MPEG4HighProfileLevel4_1) && - (opt_networkTransferSyntax != EXS_MPEG4BDcompatibleHighProfileLevel4_1)) + (opt_networkTransferSyntax != EXS_MPEG4BDcompatibleHighProfileLevel4_1) && + (opt_networkTransferSyntax != EXS_MPEG4HighProfileLevel4_2_For2DVideo) && + (opt_networkTransferSyntax != EXS_MPEG4HighProfileLevel4_2_For3DVideo) && + (opt_networkTransferSyntax != EXS_MPEG4StereoHighProfileLevel4_2)) { fallbackSyntaxes.push_back(UID_LittleEndianExplicitTransferSyntax); fallbackSyntaxes.push_back(UID_BigEndianExplicitTransferSyntax); @@ -1699,10 +1721,12 @@ configureUserIdentityRequest(T_ASC_Parameters *params) delete[] buf; return EC_IllegalCall; } + // Casting to Uint16 should be safe since it is checked above that file + // size does not exceed 65535 bytes. if (opt_identMode == ASC_USER_IDENTITY_KERBEROS) - cond = ASC_setIdentRQKerberos(params, buf, bytesRead, opt_identResponse); + cond = ASC_setIdentRQKerberos(params, buf, OFstatic_cast(Uint16,bytesRead), opt_identResponse); else - cond = ASC_setIdentRQSaml(params, buf, bytesRead, opt_identResponse); + cond = ASC_setIdentRQSaml(params, buf, OFstatic_cast(Uint16,bytesRead), opt_identResponse); delete[] buf; break; } diff --git a/dcmnet/docs/cptscp.dox b/dcmnet/docs/cptscp.dox index 0b977e3f..02e91af0 100644 --- a/dcmnet/docs/cptscp.dox +++ b/dcmnet/docs/cptscp.dox @@ -26,6 +26,7 @@ OFBool isConnected(); * TCP/IP connection is already accepted, while the ACSE negotiation * is not already done but must be implemented by this method. * @param assoc The association to run. + @param EC_Normal if association could be handled, error otherwise */ OFCondition run( T_ASC_Association* assoc ); diff --git a/dcmnet/docs/dcmnet.dox b/dcmnet/docs/dcmnet.dox index cb72ca85..7753622e 100644 --- a/dcmnet/docs/dcmnet.dox +++ b/dcmnet/docs/dcmnet.dox @@ -19,7 +19,7 @@ provide a particular DICOM Service: \li \b DcmStorageSCU \li \b DcmStorageSCP -\section Tools +\section dcmnet_tools Tools This module contains the following command line tools: \li \ref dcmrecv @@ -32,13 +32,13 @@ This module contains the following command line tools: \li \ref storescu \li \ref termscu -\section Files +\section dcmnet_files Files The following files provide further documentation: \li \ref file_asconfig \li \ref file_testing -\section Examples +\section dcmnet_examples Examples The following example shows a very simple Echo SCU (Verification Service Class SCU). Most error handling code has been omitted for brevity, also OS specific diff --git a/dcmnet/docs/dcmrecv.man b/dcmnet/docs/dcmrecv.man index e76bfea6..ed437bfb 100644 --- a/dcmnet/docs/dcmrecv.man +++ b/dcmnet/docs/dcmrecv.man @@ -6,13 +6,13 @@ \page dcmrecv dcmrecv: Simple DICOM storage SCP (receiver) \endif -\section synopsis SYNOPSIS +\section dcmrecv_synopsis SYNOPSIS \verbatim dcmrecv [options] port \endverbatim -\section description DESCRIPTION +\section dcmrecv_description DESCRIPTION The \b dcmrecv application implements a Service Class Provider (SCP) for the Storage Service Class. In contrast to the well-known \b storescp utility, @@ -21,15 +21,15 @@ explains the term "simple" in the title. The main purpose of this application is to receive a whole bunch of DICOM datasets from a Storage Service Class User (SCU) and store them to a configurable directory and file structure. -\section parameters PARAMETERS +\section dcmrecv_parameters PARAMETERS \verbatim port tcp/ip port number to listen on \endverbatim -\section options OPTIONS +\section dcmrecv_options OPTIONS -\subsection general_options general options +\subsection dcmrecv_general_options general options \verbatim -h --help print this help text and exit @@ -61,7 +61,7 @@ port tcp/ip port number to listen on \endverbatim -\subsection network_options network options +\subsection dcmrecv_network_options network options \verbatim association negotiation profile from configuration file: @@ -90,7 +90,7 @@ other network options: -dhl --disable-host-lookup disable hostname lookup \endverbatim -\subsection output_options output options +\subsection dcmrecv_output_options output options \verbatim general: @@ -134,9 +134,9 @@ storage mode: ignore dataset, receive but do not store it \endverbatim -\section notes NOTES +\section dcmrecv_notes NOTES -\subsection typical_usage Typical Usage +\subsection dcmrecv_typical_usage Typical Usage A typical use case of \b dcmrecv is to receive SOP instances that are sent from a storage SCU and save them as DICOM files. The following command does exactly @@ -166,7 +166,7 @@ dcmrecv -v -xf storescp.cfg default --bit-preserving The received datasets are always stored as DICOM files with the same Transfer Syntax as used for the network transmission. -\subsection dicom_conformance DICOM Conformance +\subsection dcmrecv_dicom_conformance DICOM Conformance Basically, the \b dcmrecv application supports all Storage SOP Classes as an SCP, including private ones. This requires, however, that a corresponding @@ -181,7 +181,7 @@ In the future, there might be additional options that allow for specifying the list of supported Presentation Contexts (i.e. combination of SOP Class and Transfer Syntaxes) directly, i.e. without loading a configuration file. -\subsection subdirectory_generation Subdirectory Generation +\subsection dcmrecv_subdirectory_generation Subdirectory Generation The option \e --series-date-subdir allows for generating subdirectories (below the specified output directory) based on the value of the data element Series @@ -203,7 +203,7 @@ system date is used for the following subdirectory structure: In both cases, \ consists of 4 decimal digits and \ as well as \ of 2 decimal digits. -\subsection filename_generation Filename Generation +\subsection dcmrecv_filename_generation Filename Generation By default, the filenames for storing the received DICOM datasets are generated according to the following scheme: @@ -248,14 +248,14 @@ With \ consisting of "" and \ of could result in naming conflicts if the resolution of the system time is not sufficiently high (i.e. does not support microseconds). -\subsection limitations Limitations +\subsection dcmrecv_limitations Limitations Please note that option \e --bit-preserving cannot be used together with option \e --series-date-subdir since the received dataset is stored directly to file and the value of the Series Date (0008,0021) is, therefore, not available before the file has been created. -\section logging LOGGING +\section dcmrecv_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -274,7 +274,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section dcmrecv_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -296,29 +296,29 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section exit_codes EXIT CODES +\section dcmrecv_exit_codes EXIT CODES The \b dcmrecv utility uses the following exit codes when terminating. This enables the user to check for the reason why the application terminated. -\subsection exit_codes_general general +\subsection dcmrecv_exit_codes_general general \verbatim EXITCODE_NO_ERROR 0 EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 \endverbatim -\subsection exit_codes_input_file_errors input file errors +\subsection dcmrecv_exit_codes_input_file_errors input file errors \verbatim EXITCODE_CANNOT_READ_INPUT_FILE 20 (*) \endverbatim -\subsection exit_codes_output_file_errors output file errors +\subsection dcmrecv_exit_codes_output_file_errors output file errors \verbatim EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 (*) EXITCODE_INVALID_OUTPUT_DIRECTORY 45 \endverbatim -\subsection exit_codes_network_errors network errors +\subsection dcmrecv_exit_codes_network_errors network errors \verbatim EXITCODE_CANNOT_INITIALIZE_NETWORK 60 (*) EXITCODE_CANNOT_START_SCP_AND_LISTEN 64 @@ -328,7 +328,7 @@ EXITCODE_INVALID_ASSOCIATION_CONFIG 66 (*) Actually, these codes are currently not used by \b dcmrecv but serve as a placeholder for the corresponding group of exit codes. -\section environment ENVIRONMENT +\section dcmrecv_environment ENVIRONMENT The \b dcmrecv utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -344,17 +344,17 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section files FILES +\section dcmrecv_files FILES \/asconfig.txt - configuration file documentation \n\/storescp.cfg - example association negotiation profile -\section see_also SEE ALSO +\section dcmrecv_see_also SEE ALSO dcmsend(1), storescu(1), storescp(1) -\section copyright COPYRIGHT +\section dcmrecv_copyright COPYRIGHT -Copyright (C) 2013-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2013-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/dcmsend.man b/dcmnet/docs/dcmsend.man index fb799c94..e4c7c296 100644 --- a/dcmnet/docs/dcmsend.man +++ b/dcmnet/docs/dcmsend.man @@ -6,13 +6,13 @@ \page dcmsend dcmsend: Simple DICOM storage SCU (sender) \endif -\section synopsis SYNOPSIS +\section dcmsend_dcmsend_synopsis SYNOPSIS \verbatim dcmsend [options] peer port dcmfile-in... \endverbatim -\section description DESCRIPTION +\section dcmsend_description DESCRIPTION The \b dcmsend application implements a Service Class User (SCU) for the Storage Service Class. In contrast to the well-known \b storescu utility, @@ -22,7 +22,7 @@ is to send a whole bunch of DICOM files to a Storage Service Class Provider (SCP). \b dcmsend supports both multiple associations (one after the other) and decompression of DICOM SOP instances if needed to transfer them. -\section parameters PARAMETERS +\section dcmsend_parameters PARAMETERS \verbatim peer hostname of DICOM peer @@ -32,9 +32,9 @@ port tcp/ip port number of peer dcmfile-in DICOM file or directory to be transmitted \endverbatim -\section options OPTIONS +\section dcmsend_options OPTIONS -\subsection general_options general options +\subsection dcmsend_general_options general options \verbatim -h --help print this help text and exit @@ -68,7 +68,7 @@ dcmfile-in DICOM file or directory to be transmitted show presentation contexts in verbose mode \endverbatim -\subsection input_options input options +\subsection dcmsend_input_options input options \verbatim input file format: @@ -101,7 +101,7 @@ input files: recurse within specified directories \endverbatim -\subsection processing_options processing options +\subsection dcmsend_processing_options processing options \verbatim transfer syntax conversion: @@ -133,7 +133,7 @@ other processing options: do not check UID values of input files \endverbatim -\subsection network_options network options +\subsection dcmsend_network_options network options \verbatim application entity titles: @@ -170,7 +170,7 @@ other network options: restrict max send pdu to n bytes \endverbatim -\subsection output_options output options +\subsection dcmsend_output_options output options \verbatim general: @@ -179,9 +179,9 @@ general: (if successful) and write it to text file f \endverbatim -\section notes NOTES +\section dcmsend_notes NOTES -\subsection typical_usage Typical Usage +\subsection dcmsend_typical_usage Typical Usage A typical use case of \b dcmsend is to send arbitrary SOP instances that are stored as DICOM files to a storage SCP. The following command does exactly @@ -241,7 +241,7 @@ the DICOM SOP instances, option \e --create-report-file can be used to create a corresponding text file. However, this file is only created as a final step if the application did not terminate before (with an error). -\subsection scanning_directories Scanning Directories +\subsection dcmsend_scanning_directories Scanning Directories Adding directories as a parameter to the command line only makes sense if option \e --scan-directories is also given. If the files in the provided @@ -259,7 +259,7 @@ their subfolders (due to option \e +r). Additionally, \b dcmsend will transfer Note that providing directory names without enabling option \e +sd does not make sense. -\subsection dicom_conformance DICOM Conformance +\subsection dcmsend_dicom_conformance DICOM Conformance Basically, the \b dcmsend application supports all Storage SOP Classes as an SCU, including private ones. By default, the application checks the SOP Class @@ -308,7 +308,7 @@ Compression", "Lossy JPEG Compression" and so on are not always proposed as also required by the DICOM standard. The same limitation applies to other compression schemes. See DICOM PS 3.5 section 10 for details. -\section logging LOGGING +\section dcmsend_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -327,7 +327,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section dcmsend_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -349,18 +349,18 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section exit_codes EXIT CODES +\section dcmsend_exit_codes EXIT CODES The \b dcmsend utility uses the following exit codes when terminating. This enables the user to check for the reason why the application terminated. -\subsection exit_codes_general general +\subsection dcmsend_exit_codes_general general \verbatim EXITCODE_NO_ERROR 0 EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 \endverbatim -\subsection exit_codes_input_file_errors input file errors +\subsection dcmsend_exit_codes_input_file_errors input file errors \verbatim EXITCODE_CANNOT_READ_INPUT_FILE 20 (*) EXITCODE_NO_INPUT_FILES 21 @@ -368,13 +368,13 @@ EXITCODE_INVALID_INPUT_FILE 22 EXITCODE_NO_VALID_INPUT_FILES 23 \endverbatim -\subsection exit_codes_output_file_errors output file errors +\subsection dcmsend_exit_codes_output_file_errors output file errors \verbatim EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 (*) EXITCODE_CANNOT_WRITE_REPORT_FILE 43 \endverbatim -\subsection exit_codes_network_errors network errors +\subsection dcmsend_exit_codes_network_errors network errors \verbatim EXITCODE_CANNOT_INITIALIZE_NETWORK 60 EXITCODE_CANNOT_NEGOTIATE_ASSOCIATION 61 @@ -385,7 +385,7 @@ EXITCODE_CANNOT_ADD_PRESENTATION_CONTEXT 65 (*) Actually, these codes are currently not used by \b dcmsend but serve as a placeholder for the corresponding group of exit codes. -\section environment ENVIRONMENT +\section dcmsend_environment ENVIRONMENT The \b dcmsend utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -401,12 +401,12 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section see_also SEE ALSO +\section dcmsend_see_also SEE ALSO dcmrecv(1), storescu(1), storescp(1) -\section copyright COPYRIGHT +\section dcmsend_copyright COPYRIGHT -Copyright (C) 2011-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2011-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/echoscu.man b/dcmnet/docs/echoscu.man index 95bd383c..caf82dae 100644 --- a/dcmnet/docs/echoscu.man +++ b/dcmnet/docs/echoscu.man @@ -6,20 +6,20 @@ \page echoscu echoscu: DICOM verification (C-ECHO) SCU \endif -\section synopsis SYNOPSIS +\section echoscu_synopsis SYNOPSIS \verbatim echoscu [options] peer port \endverbatim -\section description DESCRIPTION +\section echoscu_description DESCRIPTION The \b echoscu application implements a Service Class User (SCU) for the -Verification SOP Class. It sends a DICOM C-ECHO message to a Service -Class Provider (SCP) and waits for a response. The application can be -used to verify basic DICOM connectivity. +Verification SOP Class. It sends a DICOM C-ECHO message to a Service Class +Provider (SCP) and waits for a response. The application can be used to verify +basic DICOM connectivity. -\section parameters PARAMETERS +\section echoscu_parameters PARAMETERS \verbatim peer hostname of DICOM peer @@ -27,9 +27,9 @@ peer hostname of DICOM peer port tcp/ip port number of peer \endverbatim -\section options OPTIONS +\section echoscu_options OPTIONS -\subsection general_options general options +\subsection echoscu_general_options general options \verbatim -h --help print this help text and exit @@ -57,7 +57,7 @@ port tcp/ip port number of peer use config file f for the logger \endverbatim -\subsection network_options network options +\subsection echoscu_network_options network options \verbatim application entity titles: @@ -69,7 +69,7 @@ application entity titles: association negotiation debugging: - -pts --propose-ts [n]umber: integer (1..33) + -pts --propose-ts [n]umber: integer (1..38) propose n transfer syntaxes -ppc --propose-pc [n]umber: integer (1..128) @@ -96,7 +96,7 @@ other network options: abort association instead of releasing it \endverbatim -\subsection tls_options transport layer security (TLS) options +\subsection echoscu_tls_options transport layer security (TLS) options \verbatim transport protocol stack: @@ -129,6 +129,7 @@ key and certificate file format: read keys and certificates as DER file certification authority: + +cf --add-cert-file [c]ertificate filename: string add certificate file to list of certificates @@ -166,9 +167,9 @@ peer authentication: don't verify peer certificate \endverbatim -\section notes NOTES +\section echoscu_notes NOTES -\subsection dicom_conformance DICOM Conformance +\subsection echoscu_dicom_conformance DICOM Conformance The \b echoscu application supports the following SOP Classes as an SCU: @@ -183,7 +184,7 @@ propose the transfer syntax LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2 \endverbatim -\section logging LOGGING +\section echoscu_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -202,7 +203,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section echoscu_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -224,7 +225,7 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section environment ENVIRONMENT +\section echoscu_environment ENVIRONMENT The \b echoscu utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -240,8 +241,8 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section copyright COPYRIGHT +\section echoscu_copyright COPYRIGHT -Copyright (C) 1994-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1994-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/findscu.man b/dcmnet/docs/findscu.man index e79af7a7..06a035de 100644 --- a/dcmnet/docs/findscu.man +++ b/dcmnet/docs/findscu.man @@ -6,13 +6,13 @@ \page findscu findscu: DICOM query (C-FIND) SCU \endif -\section synopsis SYNOPSIS +\section findscu_synopsis SYNOPSIS \verbatim findscu [options] peer port [dcmfile-in...] \endverbatim -\section description DESCRIPTION +\section findscu_description DESCRIPTION The \b findscu application implements an SCU for the Query/Retrieve Service Class and the Basic Worklist Management Service Class. \b findscu only @@ -20,7 +20,7 @@ supports query functionality using the C-FIND message. It sends query keys to an SCP and awaits responses. The application can be used to test SCPs of the Query/Retrieve and Basic Worklist Management Service Classes. -\section parameters PARAMETERS +\section findscu_parameters PARAMETERS \verbatim peer hostname of DICOM peer @@ -30,9 +30,9 @@ port tcp/ip port number of peer dcmfile-in DICOM query file(s) \endverbatim -\section options OPTIONS +\section findscu_options OPTIONS -\subsection general_options general options +\subsection findscu_general_options general options \verbatim -h --help print this help text and exit @@ -60,7 +60,7 @@ dcmfile-in DICOM query file(s) use config file f for the logger \endverbatim -\subsection network_options network options +\subsection findscu_network_options network options \verbatim override matching keys: @@ -147,7 +147,7 @@ other network options: cancel after n responses (default: never) \endverbatim -\subsection tls_options transport layer security (TLS) options +\subsection findscu_tls_options transport layer security (TLS) options \verbatim transport protocol stack: @@ -218,7 +218,7 @@ peer authentication: don't verify peer certificate \endverbatim -\subsection output_options output options +\subsection findscu_output_options output options \verbatim general: @@ -245,7 +245,7 @@ C-FIND responses: extract responses to file (rsp0001.dcm, ...) \endverbatim -\section notes NOTES +\section findscu_notes NOTES Each file supplied on the command line will be sent to the SCP as part of a C-FIND request. The query file must be a valid DICOM data set containing @@ -308,7 +308,7 @@ option \e --hide-responses, \e --extract, \e --quiet or an appropriate logger configuration is used. Option \e --show-responses can be used to force the output to the logger. -\subsection dicom_conformance DICOM Conformance +\subsection findscu_dicom_conformance DICOM Conformance The \b findscu application supports the following SOP Classes as an SCU: @@ -338,7 +338,7 @@ with the \e --propose options. The \b findscu application does not support extended negotiation. -\section logging LOGGING +\section findscu_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -357,7 +357,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section findscu_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -379,7 +379,7 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section environment ENVIRONMENT +\section findscu_environment ENVIRONMENT The \b findscu utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -395,12 +395,12 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section see_also SEE ALSO +\section findscu_see_also SEE ALSO movescu(1), dump2dcm(1), dcmodify(1) -\section copyright COPYRIGHT +\section findscu_copyright COPYRIGHT -Copyright (C) 1994-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1994-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/getscu.man b/dcmnet/docs/getscu.man index 991a789d..bbbd82e3 100644 --- a/dcmnet/docs/getscu.man +++ b/dcmnet/docs/getscu.man @@ -6,13 +6,13 @@ \page getscu getscu: DICOM retrieve (C-GET) SCU \endif -\section synopsis SYNOPSIS +\section getscu_synopsis SYNOPSIS \verbatim getscu [options] peer port [dcmfile-in...] \endverbatim -\section description DESCRIPTION +\section getscu_description DESCRIPTION The \b getscu application implements an SCU for the Query/Retrieve Service Class. \b getscu supports retrieve functionality using the C-GET message. @@ -22,7 +22,7 @@ accompanying C-STORE messages are handled on the same association. Therefore, objects can only be received by \b getscu itself and cannot be sent to a third party (\b movescu would be the right tool for this task). -\section parameters PARAMETERS +\section getscu_parameters PARAMETERS \verbatim peer hostname of DICOM peer @@ -32,9 +32,9 @@ port tcp/ip port number of peer dcmfile-in DICOM query file(s) \endverbatim -\section options OPTIONS +\section getscu_options OPTIONS -\subsection general_options general options +\subsection getscu_general_options general options \verbatim -h --help print this help text and exit @@ -65,7 +65,7 @@ dcmfile-in DICOM query file(s) show presentation contexts in verbose mode \endverbatim -\subsection network_options network options +\subsection getscu_network_options network options \verbatim override matching keys: @@ -133,7 +133,16 @@ preferred storage transfer syntaxes (incoming associations): prefer MPEG4 AVC/H.264 HP / Level 4.1 TS +xl --prefer-mpeg4-bd - prefer MPEG4 AVC/H.264 BD-compatible TS + prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS +xr --prefer-rle prefer RLE lossless TS @@ -184,7 +193,7 @@ other network options: abort association instead of releasing it \endverbatim -\subsection output_options output options +\subsection getscu_output_options output options \verbatim general: @@ -203,7 +212,7 @@ storage mode: ignore store data, receive but do not store \endverbatim -\section notes NOTES +\section getscu_notes NOTES Each file supplied on the command line will be sent to the SCP as part of a C-GET request. The query file must be a valid DICOM data set containing the @@ -238,7 +247,7 @@ If no file is specified on the command line, the query must be specified completely with one or more \e -k options. If multiple query files are provided, \b getscu will send multiple C-GET requests to the SCP. -\subsection known_problems Known Problems +\subsection getscu_known_problems Known Problems \b getscu is intended to be used as a testing tool for DICOM software developers. The query keys file must be created by hand based upon the @@ -253,7 +262,7 @@ QueryRetrieveLevel attribute and one or more of the so-called "unique key attributes" (PatientID, StudyInstanceUID, SeriesInstanceUID and SOPInstanceUID). -\subsection dicom_conformance DICOM Conformance +\subsection getscu_dicom_conformance DICOM Conformance \subsubsection scu_conformance SCU Conformance @@ -301,12 +310,14 @@ DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3 DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1 CTImageStorage 1.2.840.10008.5.1.4.1.1.2 EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1 +LegacyConvertedEnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.2 RETIRED_UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3 UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1 MRImageStorage 1.2.840.10008.5.1.4.1.1.4 EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1 MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2 EnhancedMRColorImageStorage 1.2.840.10008.5.1.4.1.1.4.3 +LegacyConvertedEnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.4 RETIRED_NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.5 RETIRED_UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6 UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1 @@ -393,6 +404,7 @@ ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88. EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128 +LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128.1 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 @@ -406,9 +418,6 @@ RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481 RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8 RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 \endverbatim The \b getscu application will usually accept presentation contexts for all of @@ -445,6 +454,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 \endverbatim @@ -452,7 +464,7 @@ RLELosslessTransferSyntax 1.2.840.10008.1.2.5 The \b getscu application does not support extended negotiation. -\section examples EXAMPLES +\section getscu_examples EXAMPLES \verbatim getscu --patient --call ARCHIVE caesar 104 q.dcm @@ -468,7 +480,7 @@ the same connection, i.e. \b getscu will receive the objects itself. Thus, it is not possible to tell the SCP to transmit the objects to a third party. This is a limitation of the DICOM protocol and not of the \b getscu tool. -\section logging LOGGING +\section getscu_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -487,7 +499,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section getscu_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -509,7 +521,7 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section environment ENVIRONMENT +\section getscu_environment ENVIRONMENT The \b getscu utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -525,12 +537,12 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section see_also SEE ALSO +\section getscu_see_also SEE ALSO findscu(1), movescu(1), dump2dcm(1), dcmodify(1) -\section copyright COPYRIGHT +\section getscu_copyright COPYRIGHT -Copyright (C) 2011-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2011-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/movescu.man b/dcmnet/docs/movescu.man index 02897d7b..32b8e95f 100644 --- a/dcmnet/docs/movescu.man +++ b/dcmnet/docs/movescu.man @@ -6,13 +6,13 @@ \page movescu movescu: DICOM retrieve (C-MOVE) SCU \endif -\section synopsis SYNOPSIS +\section movescu_synopsis SYNOPSIS \verbatim movescu [options] peer port [dcmfile-in...] \endverbatim -\section description DESCRIPTION +\section movescu_description DESCRIPTION The \b movescu application implements both an SCU for the Query/Retrieve Service Class and an SCP for the Storage Service Class. \b movescu supports @@ -25,7 +25,7 @@ itself. Note that the use of the term "move" is a misnomer. The C-MOVE operation actually performs an image copy (no images will be deleted from the SCP). -\section parameters PARAMETERS +\section movescu_parameters PARAMETERS \verbatim peer hostname of DICOM peer @@ -35,9 +35,9 @@ port tcp/ip port number of peer dcmfile-in DICOM query file(s) \endverbatim -\section options OPTIONS +\section movescu_options OPTIONS -\subsection general_options general options +\subsection movescu_general_options general options \verbatim -h --help print this help text and exit @@ -65,7 +65,7 @@ dcmfile-in DICOM query file(s) use config file f for the logger \endverbatim -\subsection network_options network options +\subsection movescu_network_options network options \verbatim override matching keys: @@ -138,6 +138,15 @@ preferred network transfer syntaxes (incoming associations): +xl --prefer-mpeg4-bd prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS + +xr --prefer-rle prefer RLE lossless TS @@ -226,7 +235,7 @@ other network options: silently correct space-padded UIDs \endverbatim -\subsection output_options output options +\subsection movescu_output_options output options \verbatim general: @@ -311,7 +320,7 @@ deflate compression level 0=uncompressed, 1=fastest, 9=best compression \endverbatim -\section notes NOTES +\section movescu_notes NOTES Each file supplied on the command line will be sent to the SCP as part of a C-MOVE request. The query file must be a valid DICOM data set containing @@ -353,7 +362,7 @@ The C-MOVE operation of the Query/Retrieve Service Class is able retrieve images (when option \e --port is used) or to initiate a copy of images to a third party. -\subsection known_problems Known Problems +\subsection movescu_known_problems Known Problems \b movescu is intended to be used as a testing tool for DICOM software developers. The query keys file must be created by hand based upon the @@ -371,9 +380,9 @@ client instead expects \b movescu to close down the storage connection, \b movescu will wait infinitely. In that case \b movescu will neither close the association that was used to issue the C-MOVE request to the C-MOVE server. -\subsection dicom_conformance DICOM Conformance +\subsection movescu_dicom_conformance DICOM Conformance -\subsubsection scu_conformance SCU Conformance +\subsubsection movescu_scu_conformance SCU Conformance The \b movescu application supports the following SOP Classes as an SCU: @@ -544,6 +553,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 @@ -603,6 +614,11 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 +HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107 +HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 \endverbatim @@ -610,7 +626,7 @@ RLELosslessTransferSyntax 1.2.840.10008.1.2.5 The \b movescu application does not support extended negotiation. -\subsection access_control Access Control +\subsection movescu_access_control Access Control When compiled on Unix platforms with TCP wrapper support, host-based access control can be enabled with the \e --access-control command line option. In @@ -619,7 +635,7 @@ tables for \b movescu are enforced. The default locations of the host access control tables are /etc/hosts.allow and /etc/hosts.deny. Further details are described in hosts_access(5). -\section examples EXAMPLES +\section movescu_examples EXAMPLES \verbatim movescu --patient --port 9876 --move TEST_AE --call ARCHIVE caesar 104 q.dcm @@ -639,7 +655,7 @@ Images can be copied to a third party by using a different destination AE title the destination must be acting as an SCP of the Storage Service Class (the \b storescp application can be used for this purpose). -\section logging LOGGING +\section movescu_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -658,7 +674,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section movescu_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -680,7 +696,37 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section environment ENVIRONMENT +\section movescu_exit_codes EXIT CODES + +The \b movescu utility uses the following exit codes when terminating. This +enables the user to check for the reason why the application terminated. + +\subsection movescu_exit_codes_general general +\verbatim +EXITCODE_NO_ERROR 0 +EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 +EXITCODE_INSUFFICIENT_PRIVILEGES 2 +EXITCODE_SETUID_FAILED 3 +\endverbatim + +\subsection movescu_exit_codes_output_file_errors output file errors +\verbatim +EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 +EXITCODE_INVALID_OUTPUT_DIRECTORY 45 +\endverbatim + +\subsection movescu_exit_codes_network_errors network errors +\verbatim +EXITCODE_CANNOT_INITIALIZE_NETWORK 60 +EXITCODE_CANNOT_NEGOTIATE_ASSOCIATION 61 +EXITCODE_CANNOT_CREATE_ASSOC_PARAMETERS 65 +EXITCODE_NO_PRESENTATION_CONTEXT 66 +EXITCODE_CANNOT_CLOSE_ASSOCIATION 67 +EXITCODE_CMOVE_WARNING 68 +EXITCODE_CMOVE_ERROR 69 +\endverbatim + +\section movescu_environment ENVIRONMENT The \b movescu utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -696,12 +742,12 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section see_also SEE ALSO +\section movescu_see_also SEE ALSO findscu(1), storescp(1), dump2dcm(1) -\section copyright COPYRIGHT +\section movescu_copyright COPYRIGHT -Copyright (C) 1994-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1994-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/storescp.man b/dcmnet/docs/storescp.man index 1d58a38e..7ffa49f4 100644 --- a/dcmnet/docs/storescp.man +++ b/dcmnet/docs/storescp.man @@ -6,13 +6,13 @@ \page storescp storescp: DICOM storage (C-STORE) SCP \endif -\section synopsis SYNOPSIS +\section storescp_synopsis SYNOPSIS \verbatim storescp [options] [port] \endverbatim -\section description DESCRIPTION +\section storescp_description DESCRIPTION The \b storescp application implements a Service Class Provider (SCP) for the Storage Service Class. It listens on a specific TCP/IP port for incoming @@ -20,16 +20,16 @@ association requests from a Storage Service Class User (SCU) and can receive both DICOM images and other DICOM composite objects. The \b storescp application also supports the Verification Service Class as an SCP. -\section parameters PARAMETERS +\section storescp_parameters PARAMETERS \verbatim port tcp/ip port number to listen on (this parameter is required unless the --inetd option is specified) \endverbatim -\section options OPTIONS +\section storescp_options OPTIONS -\subsection general_options general options +\subsection storescp_general_options general options \verbatim -h --help print this help text and exit @@ -60,7 +60,7 @@ port tcp/ip port number to listen on show presentation contexts in verbose mode \endverbatim -\subsection multi_process_options multi-process options +\subsection storescp_multi_process_options multi-process options \verbatim --single-process single process mode (default) @@ -69,7 +69,7 @@ port tcp/ip port number to listen on fork child process for each association \endverbatim -\subsection network_options network options +\subsection storescp_network_options network options \verbatim association negotiation profile from configuration file: @@ -120,6 +120,15 @@ preferred network transfer syntaxes (not with --config-file): +xl --prefer-mpeg4-bd prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS + +xr --prefer-rle prefer RLE lossless TS @@ -147,6 +156,9 @@ other network options: # not available on all systems (e.g. not on Windows) + -ts --socket-timeout [s]econds: integer (default: 60) + timeout for network socket (0 for none) + -ta --acse-timeout [s]econds: integer (default: 30) timeout for ACSE messages @@ -192,7 +204,7 @@ other network options: silently correct space-padded UIDs \endverbatim -\subsection tls_options transport layer security (TLS) options +\subsection storescp_tls_options transport layer security (TLS) options \verbatim transport protocol stack: @@ -261,7 +273,7 @@ peer authentication: \endverbatim -\subsection output_options output options +\subsection storescp_output_options output options \verbatim general: @@ -370,7 +382,7 @@ filename generation: append e to all filenames \endverbatim -\subsection event_options event options +\subsection storescp_event_options event options \verbatim -xcr --exec-on-reception [c]ommand: string execute command c after having received and processed @@ -393,7 +405,7 @@ filename generation: execute command synchronously in foreground \endverbatim -\section notes NOTES +\section storescp_notes NOTES The semantic impacts of the above mentioned options is clear for the majority of options. Some particular options, however, are so specific that they need @@ -527,7 +539,7 @@ different study is received or the \e --eostudy-timeout is reached. For this reason, the options \e --fork and \e --inet are incompatible with \e --exec-on-eostudy, \e --rename-on-eostudy and \e --sort-conc-studies. -\subsection dicom_conformance DICOM Conformance +\subsection storescp_dicom_conformance DICOM Conformance The \b storescp application supports the following SOP Classes as an SCP: @@ -654,6 +666,7 @@ RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88. ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 ContentAssessmentResultsStorage 1.2.840.10008.5.1.4.1.1.90.1 EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 @@ -662,6 +675,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 @@ -683,9 +698,6 @@ DICONDE_EddyCurrentMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.601 DRAFT_RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.1 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 RTBrachyApplicationSetupDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.10 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 \endverbatim The \b storescp application will accept presentation contexts for all of the @@ -724,6 +736,8 @@ MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 +HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107 +HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 \endverbatim @@ -735,7 +749,7 @@ However, using an appropriate association negotiation profile (see below) the optional support for extended negotiation can be added to particular SOP classes. -\subsection access_control Access Control +\subsection storescp_access_control Access Control When compiled on Unix platforms with TCP wrapper support, host-based access control can be enabled with the \e --access-control command line option. In @@ -744,7 +758,7 @@ tables for \b storescp are enforced. The default locations of the host access control tables are /etc/hosts.allow and /etc/hosts.deny. Further details are described in hosts_access(5). -\subsection running_from_inetd Running storescp from inetd +\subsection storescp_running_from_inetd Running storescp from inetd On Posix platforms, \b storescp can be initiated through the inetd(8) super server. This requires that \b storescp be configured in the @@ -769,14 +783,14 @@ option (see below). Please note that when run through inetd, \b storescp is executed with root privileges, which may be a security risk. -\subsection profiles Association Negotiation Profiles and Configuration Files +\subsection storescp_profiles Association Negotiation Profiles and Configuration Files \b storescp supports a flexible mechanism for specifying the DICOM network association negotiation behavior, based on so-called "association negotiation profiles" which may be read from a configuration file. The format and semantics of this configuration file are documented in \e asconfig.txt. -\section logging LOGGING +\section storescp_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -795,7 +809,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section storescp_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -817,7 +831,7 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section environment ENVIRONMENT +\section storescp_environment ENVIRONMENT The \b storescp utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -833,17 +847,17 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section files FILES +\section storescp_files FILES \/asconfig.txt - configuration file documentation \n\/storescp.cfg - example association negotiation profile -\section see_also SEE ALSO +\section storescp_see_also SEE ALSO storescu(1) -\section copyright COPYRIGHT +\section storescp_copyright COPYRIGHT -Copyright (C) 1996-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1996-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/storescu.man b/dcmnet/docs/storescu.man index 786b2801..6fcfdd07 100644 --- a/dcmnet/docs/storescu.man +++ b/dcmnet/docs/storescu.man @@ -6,13 +6,13 @@ \page storescu storescu: DICOM storage (C-STORE) SCU \endif -\section synopsis SYNOPSIS +\section storescu_synopsis SYNOPSIS \verbatim storescu [options] peer port dcmfile-in... \endverbatim -\section description DESCRIPTION +\section storescu_description DESCRIPTION The \b storescu application implements a Service Class User (SCU) for the Storage Service Class. For each DICOM file on the command line it sends @@ -20,7 +20,7 @@ a C-STORE message to a Storage Service Class Provider (SCP) and waits for a response. The application can be used to transmit DICOM images and other DICOM composite objects. -\section parameters PARAMETERS +\section storescu_parameters PARAMETERS \verbatim peer hostname of DICOM peer @@ -30,9 +30,9 @@ port tcp/ip port number of peer dcmfile-in DICOM file or directory to be transmitted \endverbatim -\section options OPTIONS +\section storescu_options OPTIONS -\subsection general_options general options +\subsection storescu_general_options general options \verbatim -h --help print this help text and exit @@ -63,7 +63,7 @@ dcmfile-in DICOM file or directory to be transmitted show presentation contexts in verbose mode \endverbatim -\subsection input_options input options +\subsection storescu_input_options input options \verbatim input file format: @@ -93,7 +93,7 @@ input files: recurse within specified directories \endverbatim -\subsection network_options network options +\subsection storescu_network_options network options \verbatim application entity titles: @@ -163,6 +163,15 @@ proposed transmission transfer syntaxes (not with --config-file): -xl --propose-mpeg4-bd propose MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS only + -x2 --propose-mpeg4-2-2d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos only + + -x3 --propose-mpeg4-2-3d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos only + + -xo --propose-mpeg4-2-st + propose MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS only + -xr --propose-rle propose RLE lossless TS and all uncompressed transfer syntaxes @@ -217,6 +226,9 @@ other network options: -to --timeout [s]econds: integer (default: unlimited) timeout for connection requests + -ts --socket-timeout [s]econds: integer (default: 60) + timeout for network socket (0 for none) + -ta --acse-timeout [s]econds: integer (default: 30) timeout for ACSE messages @@ -258,7 +270,7 @@ other network options: (default: 25) \endverbatim -\subsection tls_options transport layer security (TLS) options +\subsection storescu_tls_options transport layer security (TLS) options \verbatim transport protocol stack: @@ -329,9 +341,9 @@ peer authentication: don't verify peer certificate \endverbatim -\section notes NOTES +\section storescu_notes NOTES -\subsection scanning_directories Scanning Directories +\subsection storescu_scanning_directories Scanning Directories Adding directories as a parameter to the command line only makes sense if option \e --scan-directories is also given. If the files in the provided @@ -342,7 +354,7 @@ directories, and, if any other patterns are specified on the command line outside the \e --scan-pattern option (e.g. in order to select further files), these do not apply to the specified directories. -\subsection dicom_conformance DICOM Conformance +\subsection storescu_dicom_conformance DICOM Conformance The \b storescu application supports the following Storage SOP Classes as an SCU: @@ -439,6 +451,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 \endverbatim @@ -450,7 +465,7 @@ However, using an appropriate association negotiation profile (see below) the optional support for extended negotiation can be added to particular SOP classes. -\subsection profiles Association Negotiation Profiles and Configuration Files +\subsection storescu_profiles Association Negotiation Profiles and Configuration Files \b storescu supports a flexible mechanism for specifying the DICOM network association negotiation behavior, based on so-called "association @@ -458,7 +473,7 @@ negotiation profiles" which may be read from a configuration file. The format and semantics of this configuration file are documented in \e asconfig.txt. -\section logging LOGGING +\section storescu_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -477,7 +492,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section storescu_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -499,7 +514,7 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section environment ENVIRONMENT +\section storescu_environment ENVIRONMENT The \b storescu utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -515,17 +530,17 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section files FILES +\section storescu_files FILES \/asconfig.txt - configuration file documentation \n\/storescu.cfg - example association negotiation profile -\section see_also SEE ALSO +\section storescu_see_also SEE ALSO storescp(1) -\section copyright COPYRIGHT +\section storescu_copyright COPYRIGHT -Copyright (C) 1996-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1996-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/docs/termscu.man b/dcmnet/docs/termscu.man index fe61fbe8..6988de9a 100644 --- a/dcmnet/docs/termscu.man +++ b/dcmnet/docs/termscu.man @@ -6,13 +6,13 @@ \page termscu termscu: DICOM termination SCU \endif -\section synopsis SYNOPSIS +\section termscu_synopsis SYNOPSIS \verbatim termscu [options] peer port \endverbatim -\section description DESCRIPTION +\section termscu_description DESCRIPTION The \b termscu application implements a Service Class User (SCU) for DCMTK's private Shutdown SOP Class. It tries to negotiate this private Shutdown SOP @@ -20,7 +20,7 @@ Class with a Service Class Provider (SCP) which (if this feature is implemented) will immediately shutdown after refusing the association. The application can be used to shutdown some of DCMTK's server applications. -\section parameters PARAMETERS +\section termscu_parameters PARAMETERS \verbatim peer hostname of DICOM peer @@ -28,9 +28,9 @@ peer hostname of DICOM peer port tcp/ip port number of peer \endverbatim -\section options OPTIONS +\section termscu_options OPTIONS -\subsection general_options general options +\subsection termscu_general_options general options \verbatim -h --help print this help text and exit @@ -58,7 +58,7 @@ port tcp/ip port number of peer use config file f for the logger \endverbatim -\subsection network_options network options +\subsection termscu_network_options network options \verbatim application entity titles: @@ -74,9 +74,9 @@ other network options: set max receive pdu to n bytes (default: 16384) \endverbatim -\section notes NOTES +\section termscu_notes NOTES -\subsection dicom_conformance DICOM Conformance +\subsection termscu_dicom_conformance DICOM Conformance The \b termscu application supports the following SOP Classes as an SCU: @@ -84,7 +84,7 @@ The \b termscu application supports the following SOP Classes as an SCU: PrivateShutdownSOPClass 1.2.276.0.7230010.3.4.1915765545.18030.917282194.0 \endverbatim -\section logging LOGGING +\section termscu_logging LOGGING The level of logging output of the various command line tools and underlying libraries can be specified by the user. By default, only errors and warnings @@ -103,7 +103,7 @@ messages to a particular output stream and for filtering certain messages based on the module or application where they are generated. An example configuration file is provided in \/logger.cfg. -\section command_line COMMAND LINE +\section termscu_command_line COMMAND LINE All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that @@ -125,7 +125,7 @@ allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \/dumppat.txt). -\section environment ENVIRONMENT +\section termscu_environment ENVIRONMENT The \b termscu utility will attempt to load DICOM data dictionaries specified in the \e DCMDICTPATH environment variable. By default, i.e. if the @@ -141,8 +141,8 @@ a semicolon (";") is used as a separator. The data dictionary code will attempt to load each file specified in the \e DCMDICTPATH environment variable. It is an error if no data dictionary can be loaded. -\section copyright COPYRIGHT +\section termscu_copyright COPYRIGHT -Copyright (C) 2005-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2005-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmnet/etc/storescp.cfg b/dcmnet/etc/storescp.cfg index 03959da1..ad6cea6d 100644 --- a/dcmnet/etc/storescp.cfg +++ b/dcmnet/etc/storescp.cfg @@ -1,5 +1,5 @@ # -# Copyright (C) 2003-2016, OFFIS e.V. +# Copyright (C) 2003-2017, OFFIS e.V. # All rights reserved. See COPYRIGHT file for details. # # This software and supporting documentation were developed by @@ -11,7 +11,7 @@ # # Module: dcmnet # -# Author: Marco Eichelberg +# Author: Marco Eichelberg, Joerg Riesmeier # # Purpose: Sample configuration file for storescp # @@ -47,10 +47,12 @@ TransferSyntax12 = MPEG4BDcompatibleHighProfile/Level4.1 TransferSyntax13 = MPEG4HighProfile/Level4.2For2DVideo TransferSyntax14 = MPEG4HighProfile/Level4.2For3DVideo TransferSyntax15 = MPEG4StereoHighProfile/Level4.2 -TransferSyntax16 = DeflatedLittleEndianExplicit -TransferSyntax17 = LocalEndianExplicit -TransferSyntax18 = OppositeEndianExplicit -TransferSyntax19 = LittleEndianImplicit +TransferSyntax16 = HEVCMainProfile/Level5.1 +TransferSyntax17 = HEVCMain10Profile/Level5.1 +TransferSyntax18 = DeflatedLittleEndianExplicit +TransferSyntax19 = LocalEndianExplicit +TransferSyntax20 = OppositeEndianExplicit +TransferSyntax21 = LittleEndianImplicit # ============================================================================ [[PresentationContexts]] @@ -204,16 +206,21 @@ PresentationContext128 = DRAFT_WaveformStorage\UncompressedOrZlib # - AcquisitionContextSRStorage # - BreastProjectionXRayImageStorageForPresentation # - BreastProjectionXRayImageStorageForProcessing +# - ColorPaletteStorage # - CompositingPlanarMPRVolumetricPresentationStateStorage # - ContentAssessmentResultsStorage +# - CTDefinedProcedureProtocolStorage +# - CTPerformedProcedureProtocolStorage # - ExtensibleSRStorage # - GrayscalePlanarMPRVolumetricPresentationStateStorage +# - HangingProtocolStorage # - LegacyConvertedEnhancedCTImageStorage # - LegacyConvertedEnhancedMRImageStorage # - LegacyConvertedEnhancedPETImageStorage # - ParametricMapStorage # - RadiopharmaceuticalRadiationDoseSRStorage # - RTBrachyApplicationSetupDeliveryInstructionStorage +# - SimplifiedAdultEchoSRStorage # - TractographyResultsStorage # - WideFieldOphthalmicPhotographyStereographicProjectionImageStorage # - WideFieldOphthalmicPhotography3DCoordinatesImageStorage @@ -229,9 +236,194 @@ PresentationContext128 = DRAFT_WaveformStorage\UncompressedOrZlib # - DICONDE_EddyCurrentImageStorage # - DICONDE_EddyCurrentMultiframeImageStorage +# ---------------------------------------------------------------------------- + +[AllDICOMStorageSCP] +# +# Same as "GenericStorageSCP" but limited to non-retired and non-draft SOP Classes. +# This allows for accepting all DICOM Storage SOP Classes that are currently defined +# in the standard (an exception is made for some non-patient DICOM objects because +# of the limitation of 128 Presentation Contexts for SCPs, see DCMTK Feature # 540). +# +PresentationContext1 = VerificationSOPClass\Uncompressed +# +# DICOM images +# +PresentationContext2 = BreastProjectionXRayImageStorageForPresentation\AnyTransferSyntax +PresentationContext3 = BreastProjectionXRayImageStorageForProcessing\AnyTransferSyntax +PresentationContext4 = BreastTomosynthesisImageStorage\AnyTransferSyntax +PresentationContext5 = ComputedRadiographyImageStorage\AnyTransferSyntax +PresentationContext6 = CornealTopographyMapStorage\AnyTransferSyntax +PresentationContext7 = CTImageStorage\AnyTransferSyntax +PresentationContext8 = DigitalIntraOralXRayImageStorageForPresentation\AnyTransferSyntax +PresentationContext9 = DigitalIntraOralXRayImageStorageForProcessing\AnyTransferSyntax +PresentationContext10 = DigitalMammographyXRayImageStorageForPresentation\AnyTransferSyntax +PresentationContext11 = DigitalMammographyXRayImageStorageForProcessing\AnyTransferSyntax +PresentationContext12 = DigitalXRayImageStorageForPresentation\AnyTransferSyntax +PresentationContext13 = DigitalXRayImageStorageForProcessing\AnyTransferSyntax +PresentationContext14 = EnhancedCTImageStorage\AnyTransferSyntax +PresentationContext15 = EnhancedMRColorImageStorage\AnyTransferSyntax +PresentationContext16 = EnhancedMRImageStorage\AnyTransferSyntax +PresentationContext17 = EnhancedPETImageStorage\AnyTransferSyntax +PresentationContext18 = EnhancedUSVolumeStorage\AnyTransferSyntax +PresentationContext19 = EnhancedXAImageStorage\AnyTransferSyntax +PresentationContext20 = EnhancedXRFImageStorage\AnyTransferSyntax +PresentationContext21 = IntravascularOpticalCoherenceTomographyImageStorageForPresentation\AnyTransferSyntax +PresentationContext22 = IntravascularOpticalCoherenceTomographyImageStorageForProcessing\AnyTransferSyntax +PresentationContext23 = LegacyConvertedEnhancedCTImageStorage\AnyTransferSyntax +PresentationContext24 = LegacyConvertedEnhancedMRImageStorage\AnyTransferSyntax +PresentationContext25 = LegacyConvertedEnhancedPETImageStorage\AnyTransferSyntax +PresentationContext26 = MRImageStorage\AnyTransferSyntax +PresentationContext27 = MultiframeGrayscaleByteSecondaryCaptureImageStorage\AnyTransferSyntax +PresentationContext28 = MultiframeGrayscaleWordSecondaryCaptureImageStorage\AnyTransferSyntax +PresentationContext29 = MultiframeSingleBitSecondaryCaptureImageStorage\AnyTransferSyntax +PresentationContext30 = MultiframeTrueColorSecondaryCaptureImageStorage\AnyTransferSyntax +PresentationContext31 = NuclearMedicineImageStorage\AnyTransferSyntax +PresentationContext32 = OphthalmicPhotography16BitImageStorage\AnyTransferSyntax +PresentationContext33 = OphthalmicPhotography8BitImageStorage\AnyTransferSyntax +PresentationContext34 = OphthalmicThicknessMapStorage\AnyTransferSyntax +PresentationContext35 = OphthalmicTomographyImageStorage\AnyTransferSyntax +PresentationContext36 = ParametricMapStorage\AnyTransferSyntax +PresentationContext37 = PositronEmissionTomographyImageStorage\AnyTransferSyntax +PresentationContext38 = RTImageStorage\AnyTransferSyntax +PresentationContext39 = SecondaryCaptureImageStorage\AnyTransferSyntax +PresentationContext40 = UltrasoundImageStorage\AnyTransferSyntax +PresentationContext41 = UltrasoundMultiframeImageStorage\AnyTransferSyntax +PresentationContext42 = VideoEndoscopicImageStorage\AnyTransferSyntax +PresentationContext43 = VideoMicroscopicImageStorage\AnyTransferSyntax +PresentationContext44 = VideoPhotographicImageStorage\AnyTransferSyntax +PresentationContext45 = VLEndoscopicImageStorage\AnyTransferSyntax +PresentationContext46 = VLMicroscopicImageStorage\AnyTransferSyntax +PresentationContext47 = VLPhotographicImageStorage\AnyTransferSyntax +PresentationContext48 = VLSlideCoordinatesMicroscopicImageStorage\AnyTransferSyntax +PresentationContext49 = VLWholeSlideMicroscopyImageStorage\AnyTransferSyntax +PresentationContext50 = WideFieldOphthalmicPhotographyStereographicProjectionImageStorage\AnyTransferSyntax +PresentationContext51 = WideFieldOphthalmicPhotography3DCoordinatesImageStorage\AnyTransferSyntax +PresentationContext52 = XRay3DAngiographicImageStorage\AnyTransferSyntax +PresentationContext53 = XRay3DCraniofacialImageStorage\AnyTransferSyntax +PresentationContext54 = XRayAngiographicImageStorage\AnyTransferSyntax +PresentationContext55 = XRayRadiofluoroscopicImageStorage\AnyTransferSyntax +# +# all other DICOM objects +# +PresentationContext56 = AcquisitionContextSRStorage\UncompressedOrZlib +PresentationContext57 = AmbulatoryECGWaveformStorage\UncompressedOrZlib +PresentationContext58 = ArterialPulseWaveformStorage\UncompressedOrZlib +PresentationContext59 = AutorefractionMeasurementsStorage\UncompressedOrZlib +PresentationContext60 = BasicStructuredDisplayStorage\UncompressedOrZlib +PresentationContext61 = BasicTextSRStorage\UncompressedOrZlib +PresentationContext62 = BasicVoiceAudioWaveformStorage\UncompressedOrZlib +PresentationContext63 = BlendingSoftcopyPresentationStateStorage\UncompressedOrZlib +PresentationContext64 = CardiacElectrophysiologyWaveformStorage\UncompressedOrZlib +PresentationContext65 = ChestCADSRStorage\UncompressedOrZlib +PresentationContext66 = ColonCADSRStorage\UncompressedOrZlib +PresentationContext67 = ColorSoftcopyPresentationStateStorage\UncompressedOrZlib +PresentationContext68 = CompositingPlanarMPRVolumetricPresentationStateStorage\UncompressedOrZlib +PresentationContext69 = Comprehensive3DSRStorage\UncompressedOrZlib +PresentationContext70 = ComprehensiveSRStorage\UncompressedOrZlib +PresentationContext71 = ContentAssessmentResultsStorage\UncompressedOrZlib +PresentationContext72 = CTDefinedProcedureProtocolStorage\UncompressedOrZlib +PresentationContext73 = CTPerformedProcedureProtocolStorage\UncompressedOrZlib +PresentationContext74 = DeformableSpatialRegistrationStorage\UncompressedOrZlib +PresentationContext75 = EncapsulatedCDAStorage\UncompressedOrZlib +PresentationContext76 = EncapsulatedPDFStorage\UncompressedOrZlib +PresentationContext77 = EnhancedSRStorage\UncompressedOrZlib +PresentationContext78 = ExtensibleSRStorage\UncompressedOrZlib +PresentationContext79 = GeneralAudioWaveformStorage\UncompressedOrZlib +PresentationContext80 = GeneralECGWaveformStorage\UncompressedOrZlib +PresentationContext81 = GenericImplantTemplateStorage\UncompressedOrZlib +PresentationContext82 = GrayscalePlanarMPRVolumetricPresentationStateStorage\UncompressedOrZlib +PresentationContext83 = GrayscaleSoftcopyPresentationStateStorage\UncompressedOrZlib +PresentationContext84 = HangingProtocolStorage\UncompressedOrZlib +PresentationContext85 = HemodynamicWaveformStorage\UncompressedOrZlib +PresentationContext86 = ImplantAssemblyTemplateStorage\UncompressedOrZlib +PresentationContext87 = ImplantationPlanSRDocumentStorage\UncompressedOrZlib +PresentationContext88 = ImplantTemplateGroupStorage\UncompressedOrZlib +PresentationContext89 = IntraocularLensCalculationsStorage\UncompressedOrZlib +PresentationContext90 = KeratometryMeasurementsStorage\UncompressedOrZlib +PresentationContext91 = KeyObjectSelectionDocumentStorage\UncompressedOrZlib +PresentationContext92 = LensometryMeasurementsStorage\UncompressedOrZlib +PresentationContext93 = MacularGridThicknessAndVolumeReportStorage\UncompressedOrZlib +PresentationContext94 = MammographyCADSRStorage\UncompressedOrZlib +PresentationContext95 = MRSpectroscopyStorage\UncompressedOrZlib +PresentationContext96 = OphthalmicAxialMeasurementsStorage\UncompressedOrZlib +PresentationContext97 = OphthalmicVisualFieldStaticPerimetryMeasurementsStorage\UncompressedOrZlib +PresentationContext98 = ProcedureLogStorage\UncompressedOrZlib +PresentationContext99 = PseudoColorSoftcopyPresentationStateStorage\UncompressedOrZlib +PresentationContext100 = RadiopharmaceuticalRadiationDoseSRStorage\UncompressedOrZlib +PresentationContext101 = RawDataStorage\UncompressedOrZlib +PresentationContext102 = RealWorldValueMappingStorage\UncompressedOrZlib +PresentationContext103 = RespiratoryWaveformStorage\UncompressedOrZlib +PresentationContext104 = RTBeamsDeliveryInstructionStorage\UncompressedOrZlib +PresentationContext105 = RTBeamsTreatmentRecordStorage\UncompressedOrZlib +PresentationContext106 = RTBrachyApplicationSetupDeliveryInstructionStorage\UncompressedOrZlib +PresentationContext107 = RTBrachyTreatmentRecordStorage\UncompressedOrZlib +PresentationContext108 = RTDoseStorage\UncompressedOrZlib +PresentationContext109 = RTIonBeamsTreatmentRecordStorage\UncompressedOrZlib +PresentationContext110 = RTIonPlanStorage\UncompressedOrZlib +PresentationContext111 = RTPlanStorage\UncompressedOrZlib +PresentationContext112 = RTStructureSetStorage\UncompressedOrZlib +PresentationContext113 = RTTreatmentSummaryRecordStorage\UncompressedOrZlib +PresentationContext114 = SegmentationStorage\UncompressedOrZlib +PresentationContext115 = SimplifiedAdultEchoSRStorage\UncompressedOrZlib +PresentationContext116 = SpatialFiducialsStorage\UncompressedOrZlib +PresentationContext117 = SpatialRegistrationStorage\UncompressedOrZlib +PresentationContext118 = SpectaclePrescriptionReportStorage\UncompressedOrZlib +PresentationContext119 = StereometricRelationshipStorage\UncompressedOrZlib +PresentationContext120 = SubjectiveRefractionMeasurementsStorage\UncompressedOrZlib +PresentationContext121 = SurfaceScanMeshStorage\UncompressedOrZlib +PresentationContext122 = SurfaceScanPointCloudStorage\UncompressedOrZlib +PresentationContext123 = SurfaceSegmentationStorage\UncompressedOrZlib +PresentationContext124 = TractographyResultsStorage\UncompressedOrZlib +PresentationContext125 = TwelveLeadECGWaveformStorage\UncompressedOrZlib +PresentationContext126 = VisualAcuityMeasurementsStorage\UncompressedOrZlib +PresentationContext127 = XAXRFGrayscaleSoftcopyPresentationStateStorage\UncompressedOrZlib +PresentationContext128 = XRayRadiationDoseSRStorage\UncompressedOrZlib +# +# the following SOP classes are missing in the above list: +# +# - ColorPaletteStorage +# +# - RETIRED_HardcopyColorImageStorage +# - RETIRED_HardcopyGrayscaleImageStorage +# - RETIRED_NuclearMedicineImageStorage +# - RETIRED_UltrasoundImageStorage +# - RETIRED_UltrasoundMultiframeImageStorage +# - RETIRED_VLImageStorage +# - RETIRED_VLMultiFrameImageStorage +# - RETIRED_XRayAngiographicBiPlaneImageStorage +# +# - RETIRED_StandaloneCurveStorage +# - RETIRED_StandaloneModalityLUTStorage +# - RETIRED_StandaloneOverlayStorage +# - RETIRED_StandalonePETCurveStorage +# - RETIRED_StandaloneVOILUTStorage +# - RETIRED_StoredPrintStorage +# +# - DRAFT_RTBeamsDeliveryInstructionStorage +# - DRAFT_SRAudioStorage +# - DRAFT_SRComprehensiveStorage +# - DRAFT_SRDetailStorage +# - DRAFT_SRTextStorage +# - DRAFT_WaveformStorage +# +# - DICOS_2DAITStorage +# - DICOS_3DAITStorage +# - DICOS_CTImageStorage +# - DICOS_DigitalXRayImageStorageForPresentation +# - DICOS_DigitalXRayImageStorageForProcessing +# - DICOS_QuadrupoleResonanceStorage +# - DICOS_ThreatDetectionReportStorage +# +# - DICONDE_EddyCurrentImageStorage +# - DICONDE_EddyCurrentMultiframeImageStorage + # ============================================================================ [[Profiles]] # ============================================================================ [Default] PresentationContexts = GenericStorageSCP + +[AllDICOM] +PresentationContexts = AllDICOMStorageSCP diff --git a/dcmnet/etc/storescu.cfg b/dcmnet/etc/storescu.cfg index 5b655d23..a42412fe 100644 --- a/dcmnet/etc/storescu.cfg +++ b/dcmnet/etc/storescu.cfg @@ -211,6 +211,8 @@ PresentationContext128 = VideoPhotographicImageStorage\MPEG2 # - Comprehensive3DSRStorage # - ContentAssessmentResultsStorage # - CornealTopographyMapStorage +# - CTDefinedProcedureProtocolStorage +# - CTPerformedProcedureProtocolStorage # - DeformableSpatialRegistrationStorage # - EncapsulatedCDAStorage # - EnhancedMRColorImageStorage @@ -245,6 +247,7 @@ PresentationContext128 = VideoPhotographicImageStorage\MPEG2 # - RTIonBeamsTreatmentRecordStorage # - RTIonPlanStorage # - SegmentationStorage +# - SimplifiedAdultEchoSRStorage # - SpectaclePrescriptionReportStorage # - SubjectiveRefractionMeasurementsStorage # - SurfaceScanMeshStorage diff --git a/dcmnet/include/dcmtk/dcmnet/assoc.h b/dcmnet/include/dcmtk/dcmnet/assoc.h index 240684d6..ab6c453f 100644 --- a/dcmnet/include/dcmtk/dcmnet/assoc.h +++ b/dcmnet/include/dcmtk/dcmnet/assoc.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -440,7 +440,7 @@ ASC_setIdentRQUserPassword( T_ASC_Parameters * params, const OFString& userName, const OFString& password, - const OFBool& requestRsp = OFTrue); + const OFBool requestRsp = OFTrue); /** Sets User authentication (no password) for User Identity Negotiation * request. @@ -452,7 +452,7 @@ DCMTK_DCMNET_EXPORT OFCondition ASC_setIdentRQUserOnly( T_ASC_Parameters * params, const OFString& userName, - const OFBool& requestRsp = OFTrue); + const OFBool requestRsp = OFTrue); /** Sets Kerberos authentication for User Identity Negotiation request. * @param params - [in/out] The association parameters to be filled @@ -464,8 +464,8 @@ DCMTK_DCMNET_EXPORT OFCondition ASC_setIdentRQKerberos( T_ASC_Parameters * params, const char* kerbTicket, - const Uint16& length, - const OFBool& requestRsp = OFTrue); + const Uint16 length, + const OFBool requestRsp = OFTrue); /** Sets SAML authentication for User Identity Negotiation request. * @param params - [in/out] The association parameters to be filled @@ -477,8 +477,8 @@ DCMTK_DCMNET_EXPORT OFCondition ASC_setIdentRQSaml( T_ASC_Parameters * params, const char* saml, - const Uint16& length, - const OFBool& requestRsp = OFTrue); + const Uint16 length, + const OFBool requestRsp = OFTrue); /** Acknowledges a User Identity Negotiation request. @@ -490,7 +490,7 @@ ASC_setIdentRQSaml( DCMTK_DCMNET_EXPORT OFCondition ASC_setIdentAC( T_ASC_Parameters * params, const char* response, - const Uint16& length ); + const Uint16 length); /** Returns a copy of the User Identity Negotiation response value. * CAUTION: The returned buffer (copy of original data) must be freed by the diff --git a/dcmnet/include/dcmtk/dcmnet/cond.h b/dcmnet/include/dcmtk/dcmnet/cond.h index ee7015fb..11a3c124 100644 --- a/dcmnet/include/dcmtk/dcmnet/cond.h +++ b/dcmnet/include/dcmtk/dcmnet/cond.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2012, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -193,6 +193,9 @@ extern DCMTK_DCMNET_EXPORT const OFConditionConst NET_EC_InsufficientPortPrivile // codes 1024 to 1073 are used for the association negotiation profile classes extern DCMTK_DCMNET_EXPORT const OFConditionConst NET_EC_SCPBusy; /* SCP is busy */ extern DCMTK_DCMNET_EXPORT const OFConditionConst NET_EC_CannotStartSCPThread; /* Cannot start SCP thread */ +extern DCMTK_DCMNET_EXPORT const OFConditionConst NET_EC_StopAfterAssociation; /* Stop after current association (as requested) */ +extern DCMTK_DCMNET_EXPORT const OFConditionConst NET_EC_StopAfterConnectionTimeout; /* Stop after TCP connection timeout (as requested) */ + // This macro creates a condition with given code, severity and text. // Making this a macro instead of a function saves the creation of a temporary. diff --git a/dcmnet/include/dcmtk/dcmnet/dccfpcmp.h b/dcmnet/include/dcmtk/dcmnet/dccfpcmp.h index 0c4540c1..a08b9aaf 100644 --- a/dcmnet/include/dcmtk/dcmnet/dccfpcmp.h +++ b/dcmnet/include/dcmtk/dcmnet/dccfpcmp.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -15,7 +15,7 @@ * * Author: Marco Eichelberg * - * Purpose: + * Purpose: * class DcmPresentationContextItem * class DcmPresentationContextMap * @@ -48,7 +48,7 @@ public: /// copy constructor DcmPresentationContextItem(const DcmPresentationContextItem& arg); - + /// destructor ~DcmPresentationContextItem(); @@ -88,7 +88,7 @@ public: */ OFBool operator==(const DcmPresentationContextItem& arg) const { - return (uid_ == arg.uid_) && (xferSyntaxGroup_ == arg.xferSyntaxGroup_); + return (uid_ == arg.uid_) && (xferSyntaxGroup_ == arg.xferSyntaxGroup_); } private: @@ -154,9 +154,9 @@ public: * @return EC_Normal if successful, an error code otherwise */ OFCondition add( - const char *key, - const char *abstractSyntaxUID, - const char *transferSyntaxKey); + const OFString& key, + const OFString& abstractSyntaxUID, + const OFString& transferSyntaxKey); /** checks if the key is known * @param key key name, must not be NULL diff --git a/dcmnet/include/dcmtk/dcmnet/dcmtrans.h b/dcmnet/include/dcmtk/dcmnet/dcmtrans.h index 54da8fbd..97e9f100 100644 --- a/dcmnet/include/dcmtk/dcmnet/dcmtrans.h +++ b/dcmnet/include/dcmtk/dcmnet/dcmtrans.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2011, OFFIS e.V. + * Copyright (C) 1998-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -24,13 +24,34 @@ #define DCMTRANS_H #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ -#include "dcmtk/ofstd/oftypes.h" /* for OFBool */ +#include "dcmtk/ofstd/ofglobal.h" /* for OFGlobal */ +#include "dcmtk/ofstd/oftypes.h" /* for OFBool */ +#include "dcmtk/ofstd/ofstream.h" /* for ostream */ #include "dcmtk/dcmnet/dcmlayer.h" /* for DcmTransportLayerStatus */ -#include "dcmtk/ofstd/ofstream.h" /* for ostream */ #define INCLUDE_UNISTD #include "dcmtk/ofstd/ofstdinc.h" +/** Global timeout in seconds for sending data on a socket to a remote host. + * The default value is 60, which is useful in cases where the sender (e.g. + * storescu) looses the connection to the receiver because the network cable + * is pulled (e.g. for a mobile device). + * A value of 0 means that the send() will never timeout, and a value of -1 + * disables the call of the corresponding setsockopt() function, so that the + * system's default behavior remains unchanged. + */ +extern DCMTK_DCMNET_EXPORT OFGlobal dcmSocketSendTimeout; /* default: 60 */ + +/** Global timeout in seconds for receiving data on a socket from a remote host. + * The default value is 60, which is useful in cases where the receiver (e.g. + * storescp) looses the connection to the sender because the network cable is + * pulled (e.g. for a mobile device). + * A value of 0 means that the recv() will never timeout, and a value of -1 + * disables the call of the corresponding setsockopt() function, so that the + * system's default behavior remains unchanged. + */ +extern DCMTK_DCMNET_EXPORT OFGlobal dcmSocketReceiveTimeout; /* default: 60 */ + /** this class represents a TCP/IP based transport connection * which can be a transparent TCP/IP socket communication or a * secure transport protocol such as TLS. @@ -41,7 +62,7 @@ public: /** constructor. * @param openSocket TCP/IP socket to be used for the transport connection. - * the connection must already be establised on socket level. This object + * the connection must already be established on socket level. This object * takes over control of the socket. */ DcmTransportConnection(int openSocket); @@ -226,7 +247,7 @@ public: /** constructor. * @param openSocket TCP/IP socket to be used for the transport connection. - * the connection must already be establised on socket level. This object + * the connection must already be established on socket level. This object * takes over control of the socket. */ DcmTCPConnection(int openSocket); diff --git a/dcmnet/include/dcmtk/dcmnet/dcompat.h b/dcmnet/include/dcmtk/dcmnet/dcompat.h index d30e91ff..87a1667a 100644 --- a/dcmnet/include/dcmtk/dcmnet/dcompat.h +++ b/dcmnet/include/dcmtk/dcmnet/dcompat.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -214,17 +214,6 @@ DCMTK_DCMNET_EXPORT int gethostname(char* name, int namelen); #endif #endif -#ifndef HAVE_PROTOTYPE_GETHOSTBYNAME -#ifdef HAVE_GETHOSTBYNAME -/* it is in the libraries but we have no prototype */ -BEGIN_EXTERN_C -struct hostent *gethostbyname(const char* name); -END_EXTERN_C -#else -/* don't know how to emulate */ -#endif -#endif - #ifndef HAVE_PROTOTYPE_GETSOCKOPT #ifdef HAVE_GETSOCKOPT /* it is in the libraries but we have no prototype */ @@ -364,8 +353,8 @@ DCMTK_DCMNET_EXPORT int access(const char* path, int amode); #ifndef R_OK #define W_OK 02 /* Write permission */ #define R_OK 04 /* Read permission */ -#define F_OK 00 /* Existance only */ -#define X_OK 00 /* execute permission has no meaning under windows, treat as existance */ +#define F_OK 00 /* Existence only */ +#define X_OK 00 /* Execute permission has no meaning under Windows, treat as existence */ #endif /* R_OK */ #endif /* _WIN32 */ @@ -375,10 +364,6 @@ DCMTK_DCMNET_EXPORT int access(const char* path, int amode); DCMTK_DCMNET_EXPORT char *strerror(int e); #endif -#ifndef HAVE_TEMPNAM -DCMTK_DCMNET_EXPORT char *tempnam(char *dir, char *pfx); -#endif - #ifdef _WIN32 #define NULL_DEVICE_NAME "nul" #else diff --git a/dcmnet/include/dcmtk/dcmnet/dcuserid.h b/dcmnet/include/dcmtk/dcmnet/dcuserid.h index f53d92d2..54619528 100644 --- a/dcmnet/include/dcmtk/dcmnet/dcuserid.h +++ b/dcmnet/include/dcmtk/dcmnet/dcuserid.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2008-2011, OFFIS e.V. + * Copyright (C) 2008-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -27,8 +27,10 @@ #include "dcmtk/ofstd/ofcond.h" #include "dcmtk/dcmnet/dndefine.h" -/// User Identity Negotiation always identifies with 0x58 -#define DUL_TYPENEGOTIATIONOFUSERIDENTITY (unsigned char)0x58 +/// User Identity Negotiation request always identifies with 0x58 +#define DUL_TYPENEGOTIATIONOFUSERIDENTITY_REQ (unsigned char)0x58 +/// User Identity Negotiation acknowledge identifies with 0x59 +#define DUL_TYPENEGOTIATIONOFUSERIDENTITY_ACK (unsigned char)0x59 /// Mode of User Identity Negotiation enum T_ASC_UserIdentityNegotiationMode @@ -49,26 +51,29 @@ class DCMTK_DCMNET_EXPORT UserIdentityNegotiationSubItem { public: /** Constructor + * @param itemType: Must be set to 0x58 for requests, 0x59 for + * acknowledgements (done in constructors of sub classes) */ - UserIdentityNegotiationSubItem(); + UserIdentityNegotiationSubItem(const unsigned char itemType); /** Copy constructor. Needed to keep some compilers quiet. * @param src item that should be copied from. */ - UserIdentityNegotiationSubItem(const UserIdentityNegotiationSubItem& src) : - m_itemType(src.m_itemType), + UserIdentityNegotiationSubItem(const UserIdentityNegotiationSubItem& src) : + m_itemType(src.m_itemType), m_reserved(src.m_reserved) { } /** Denotes whether instance is part of a request (DUL_TYPEASSOCIATERQ) - * or acknowledge PDU (DUL_TYPEASSOCIATEAC) - * @return Constant for either request of ack message. + * or acknowledgement PDU (DUL_TYPEASSOCIATEAC) + * @return Constant for either request of acknowledgement message. */ virtual unsigned char pduType() const =0; - /** Returns item type, which is constantly 0x58 - * @return The item type = 0x58 + /** Returns item type, which is 0x58 for requests, and 0x58 for + * acknowledgements. + * @return The item type = 0x58 or 0x59 */ virtual unsigned char getItemType() const {return m_itemType;} @@ -79,17 +84,17 @@ public: virtual unsigned char getReserved() const {return m_reserved;} /** Computes total length of item if streamed to a buffer - * @param length - [out] The total ength of the item in bytes + * @param length - [out] The total length of the item in bytes * @return EC_Normal if successful, error code otherwise */ virtual OFCondition streamedLength(unsigned long& length) const = 0; /** Parse item from buffer. The buffer has to start with the correct user * item type. - * @param readBuffer - [in/out] The buffer to read from. The pointer to the buffer - * gets incremented by "bytesRead" bytes. - * @param bytesRead - [out] Number of bytes read by this function - * @param availData - [in] Size of the buffer. + * @param readBuffer The buffer to read from (input and output). The pointer + * to the buffer gets incremented by "bytesRead" bytes. + * @param bytesRead Returns number of bytes read by this function + * @param availData Size of the buffer for reading * @return EC_Normal if successful, error code otherwise */ virtual OFCondition parseFromBuffer(unsigned char *readBuffer, @@ -97,8 +102,8 @@ public: unsigned long availData) =0; /** Stream the package into a byte stream for network transmission - * @param targetBuffer - [out] The buffer to stream to. - * @param lengthWritten - [out] Number of bytes written to buffer + * @param targetBuffer The buffer to stream to + * @param lengthWritten Returns number of bytes written to buffer * @return EC_Normal, if successful, error code otherwise */ virtual OFCondition stream(unsigned char *targetBuffer, @@ -109,7 +114,7 @@ public: virtual void clear() =0; /** Dump content of this user identity sub item to output stream - * @param outstream - [out] The stream to dump to + * @param outstream The stream to dump to */ virtual void dump(STD_NAMESPACE ostream& outstream) const =0; @@ -120,11 +125,12 @@ public: private: /** Undefined private assignment operator. Needed to keep some compilers quiet. + * @return Reference to "this" object */ UserIdentityNegotiationSubItem& operator= (const UserIdentityNegotiationSubItem&); - - /// Item type of this user item. For User Identity Negotiation - /// this is always 0x58 + + /// Item type of this user item. For User Identity Negotiation, this is + /// always 0x58 for requests and 0x59 for acknowledgements. const unsigned char m_itemType; /// Reserved field, should be always sent with value 0 (default) @@ -153,59 +159,59 @@ public: virtual void clear(); /** Sets identity type to be used. - * At this time, user, user/password, kerberos and SAML are known. - * @param mode - [in] the identification mode + * At this time, user, user/password, Kerberos and SAML are known. + * @param mode Identification mode */ void setIdentityType(const T_ASC_UserIdentityNegotiationMode& mode); /** Returns identity type that will be used. - * At this time, user, user/password, kerberos and SAML are known. - * @return the identification mode + * At this time, user, user/password, Kerberos and SAML are known. + * @return Identification mode */ T_ASC_UserIdentityNegotiationMode getIdentityType(); - /** Sets content of primary field. - * @param buffer - [in] Content of primary field. - * @param length - [in] Length of buffer + /** Sets content of primary field + * @param buffer Content of primary field + * @param length Length of buffer */ void setPrimField(const char *buffer, - const Uint16& length); + const Uint16 length); - /** Sets content of secondary field. - * @param buffer - [in] Content of secondary field. - * @param length - [in ] Length of buffer + /** Sets content of secondary field + * @param buffer Content of secondary field. + * @param length Length of buffer */ void setSecField(const char *buffer, - const Uint16& length); + const Uint16 length); /** Returns content of primary field. Memory is allocated by this function - * and must be freed by the caller. - * @param resultBuf - [out] Content of primary field. NULL if not set. Memory - * of buffer must be freed by the caller. - * @param resultLen - [out] Length of returned buffer - * @return Content of the primary field + * for resultBuf and must be freed by the caller. + * @param resultBuf Returns content of primary field. NULL if not set. Memory + * of this buffer must be freed by the caller. + * @param resultLen Returns length of returned buffer + * @return Length of returned buffer */ Uint16 getPrimField(char*& resultBuf, Uint16& resultLen) const; /** Returns content of secondary field. Memory is allocated by this function - * and must be freed by the caller. - * @param resultBuf - [out] Content of secondary field. NULL if not set. Memory - * of buffer must be freed by the caller. - * @param resultLen - [out] Length of returned buffer - * @return Content of the secondary field. + * for resultBuf must be freed by the caller. + * @param resultBuf Returns content of secondary field. NULL if not set. Memory + * of buffer must be freed by the caller. + * @param resultLen Returns length of returned buffer + * @return Returns length of returned buffer */ Uint16 getSecField(char*& resultBuf, Uint16& resultLen) const; /** Enables/disables requesting a positive response from the server. - * @param reqPosRsp - [in] If true, a positive response is requested + * @param reqPosRsp If OFTrue, a positive response is requested */ void setReqPosResponse(const OFBool& reqPosRsp); /** Informs (the server) whether a positive response was requested. - * @return OFTrue if a response was requested + * @return Returns OFTrue if a response was requested */ OFBool isPosResponseRequested() { @@ -213,26 +219,26 @@ public: } /** Stream the package into a byte stream for network transmission - * @param targetBuffer - [out] The buffer to stream to. Must be - * big enough (not allocated in function). - * @param lengthWritten - [out] Number of bytes written to buffer + * @param targetBuffer The buffer to stream to. Must be + * big enough (must be allocated by caller). + * @param lengthWritten Returns number of bytes written to buffer * @return EC_Normal, if successful, error code otherwise */ OFCondition stream(unsigned char *targetBuffer, unsigned long& lengthWritten) const; /** Computes total length of item if streamed into buffer - * @param length - [out] The total length of the item in bytes + * @param length Returns the total length of the item in bytes * @return EC_Normal if successful, error code otherwise */ OFCondition streamedLength(unsigned long& length) const; /** Parse sub item from buffer. The buffer has to start with the correct user * item type. - * @param readBuffer - [in] The buffer to read from. The pointer to the buffer - * gets incremented by "bytesRead" bytes. - * @param bytesRead - [out] Number of bytes read by this function - * @param availData - [in] Size of the buffer. + * @param readBuffer The buffer to read from. The pointer to the buffer + * gets incremented by "bytesRead" bytes. + * @param bytesRead Returns number of bytes read by this function + * @param availData Size of the readBuffer * @return EC_Normal if successful, error code otherwise */ OFCondition parseFromBuffer(unsigned char *readBuffer, @@ -240,17 +246,18 @@ public: unsigned long availData); /** Dump content of this user identity sub item to output stream - * @param outstream - [out] The stream to dump to + * @param outstream The stream to dump to */ void dump(STD_NAMESPACE ostream& outstream) const; /** Assignment operator, does a deep copy of a class instance - * @param rhs - [in] Right hand side of assignment + * @param rhs Right hand side of assignment + * @return Reference to "this" object */ UserIdentityNegotiationSubItemRQ& operator= (const UserIdentityNegotiationSubItemRQ& rhs); /** Copy constructor, does a deep copy of a class instance - * @param rhs - [in] The class instance to copy from + * @param rhs The class instance to copy from */ UserIdentityNegotiationSubItemRQ(const UserIdentityNegotiationSubItemRQ& rhs); @@ -275,6 +282,8 @@ private: }; +/** Class representing a User Identity Negotiation acknowledgement sub item + */ class DCMTK_DCMNET_EXPORT UserIdentityNegotiationSubItemAC : public UserIdentityNegotiationSubItem { public: @@ -293,31 +302,31 @@ public: virtual void clear(); /** Sets server response value - * @param rsp - [in] Content of server response value (copied by function) - * @param rspLen - [in ] Length of buffer + * @param rsp Content of server response value (copied by function) + * @param rspLen Length of buffer */ void setServerResponse(const char* rsp, const Uint16& rspLen); /** Returns content of server response field Memory is allocated by this * function and must be freed by the caller. - * @param targetBuffer - [out] Content of server response field. NULL if not set. - * Memory of buffer must be freed by the caller. - * @param resultLen - [out] Length of returned buffer - * @return The server response field + * @param targetBuffer Content of server response field. NULL if not set. + * Memory of buffer must be freed by the caller. + * @param resultLen Length of returned buffer + * @return Length of returned buffer */ Uint16 getServerResponse(char*& targetBuffer, Uint16& resultLen) const; /** Computes total length of item if streamed into buffer - * @param length - [out] The length of the item if streamed + * @param length Returns length of the item if streamed * @return EC_Normal if successful, error code otherwise */ OFCondition streamedLength(unsigned long& length) const; /** Stream the package into a byte stream for network transmission - * @param targetBuffer - [out] The buffer to stream to. - * @param lengthWritten - [out] Number of bytes written to buffer + * @param targetBuffer The buffer to stream to + * @param lengthWritten Returns number of bytes written to buffer * @return EC_Normal, if successful, error code otherwise */ OFCondition stream(unsigned char *targetBuffer, @@ -325,10 +334,10 @@ public: /** Parse sub item from buffer. The buffer has to start with the correct user * item type. - * @param readBuffer - [in] The buffer to read from. The pointer to the buffer - * gets incremented by "bytesRead" bytes. - * @param bytesRead - [out] Number of bytes read by this function - * @param availData - [in] Size of the buffer. + * @param readBuffer The buffer to read from. The pointer to the buffer + * gets incremented by "bytesRead" bytes. + * @param bytesRead Returns number of bytes read by this function + * @param availData Size of the read buffer * @return EC_Normal if successful, error code otherwise */ OFCondition parseFromBuffer(unsigned char *readBuffer, @@ -336,17 +345,18 @@ public: unsigned long availData); /** Dump content of this user identity sub item to output stream - * @param outstream - [out] The stream to dump to + * @param outstream The stream to dump to */ void dump(STD_NAMESPACE ostream& outstream) const; /** Assignment operator, does a deep copy of a class instance - * @param rhs - [in] Right hand side of assignment + * @param rhs Right hand side of assignment + * @return Reference to "this" object */ UserIdentityNegotiationSubItemAC& operator= (const UserIdentityNegotiationSubItemAC& rhs); /** Copy constructor, does a deep copy of a class instance - * @param rhs - [in] The class instance to copy from + * @param rhs The class instance to copy from */ UserIdentityNegotiationSubItemAC(const UserIdentityNegotiationSubItemAC& rhs); diff --git a/dcmnet/include/dcmtk/dcmnet/dul.h b/dcmnet/include/dcmtk/dcmnet/dul.h index a1072874..3272de7f 100644 --- a/dcmnet/include/dcmtk/dcmnet/dul.h +++ b/dcmnet/include/dcmtk/dcmnet/dul.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -82,25 +82,25 @@ class LST_HEAD; * structure. Most DICOM applications (except imagectn) don't need the symbolic * hostname anyway, and the reverse DNS lookup can cause a long timeout. */ -extern DCMTK_DCMNET_EXPORT OFGlobal dcmDisableGethostbyaddr; /* default OFFalse */ +extern DCMTK_DCMNET_EXPORT OFGlobal dcmDisableGethostbyaddr; /* default: OFFalse */ /** Global flag specifying whether to reject presentation contexts in case of an * unsuccessful SCP/SCU role selection (strict) or to return the corresponding * user data item with appropriate values (default). This applies to association * acceptors only. */ -extern DCMTK_DCMNET_EXPORT OFGlobal dcmStrictRoleSelection; /* default OFFalse */ +extern DCMTK_DCMNET_EXPORT OFGlobal dcmStrictRoleSelection; /* default: OFFalse */ -/** Global timeout (seconds) for connecting to remote hosts. - * Default value is -1 which selects infinite timeout, i.e. blocking connect(). +/** Global timeout in seconds for connecting to remote hosts. + * Default value is -1, which selects infinite timeout, i.e. blocking connect(). */ -extern DCMTK_DCMNET_EXPORT OFGlobal dcmConnectionTimeout; /* default -1 */ +extern DCMTK_DCMNET_EXPORT OFGlobal dcmConnectionTimeout; /* default: -1 */ /** This global flag allows to set an already opened socket file descriptor which * will be used by dcmnet the next time receiveTransportConnectionTCP() is called. * Useful for use with proxy applications, but inherently thread unsafe! */ -extern DCMTK_DCMNET_EXPORT OFGlobal dcmExternalSocketHandle; /* default -1 */ +extern DCMTK_DCMNET_EXPORT OFGlobal dcmExternalSocketHandle; /* default: -1 */ /** When compiled with WITH_TCPWRAPPER, DCMTK server processes may use the TCP * wrapper library to enforce access control - see hosts_access(5). If this @@ -108,7 +108,7 @@ extern DCMTK_DCMNET_EXPORT OFGlobal dcmExternalSocketHandle; /* default - * to is used as the daemon name. If the flag is NULL, no access control is * performed. */ -extern DCMTK_DCMNET_EXPORT OFGlobal dcmTCPWrapperDaemonName; /* default NULL */ +extern DCMTK_DCMNET_EXPORT OFGlobal dcmTCPWrapperDaemonName; /* default: NULL */ /* Global option flag for compatibility with DCMTK releases prior to version 3.0. * Default (0) is automatic handling, which should work in most cases. diff --git a/dcmnet/include/dcmtk/dcmnet/scp.h b/dcmnet/include/dcmtk/dcmnet/scp.h index dfe0c0bf..d0018bf3 100644 --- a/dcmnet/include/dcmtk/dcmnet/scp.h +++ b/dcmnet/include/dcmtk/dcmnet/scp.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2009-2015, OFFIS e.V. + * Copyright (C) 2009-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -149,7 +149,16 @@ public: /** Starts providing the implemented services to SCUs. * After calling this method the SCP is listening for connection requests. - * @return The result. Function usually only returns in case of errors. + * @return The result. Per default, the method only returns in case of fatal errors. + * However, there are ways to stop listening in a controlled way: + *
    + *
  • In non-blocking mode, use stopAfterConnectionTimeout() in order + * shut down after the TCP timeout set with setConnectionTimeout() has + * occurred. In that case, the method returns with NET_EC_StopAfterConnectionTimeout.
  • + *
  • In non-blocking and blocking mode, stopAfterCurrentAssociation() can + * be used to return after an association has been handled and ended. + * In that case, NET_EC_StopAfterAssociation is returned.
  • + *
*/ virtual OFCondition listen(); @@ -365,8 +374,11 @@ public: /** Set the DcmSCPConfig object to use for configuring this DcmSCP object. * A deep copy is performed. - * @param config The configuration to use. - * @return EC_Normal if configuration can be used, error code otherwise. + * @param config The configuration to use. + * @return EC_Normal if configuration can be used. The configuration can + * only be changed if the SCP is not yet connected, otherwise + * NET_EC_AlreadyConnected is returned. + * */ virtual OFCondition setConfig(const DcmSCPConfig& config); @@ -513,6 +525,13 @@ protected: */ virtual void notifyAssociationTermination(); + /** Overwrite this function to be notified about a connection timeout in + * non-blocking mode (see setConnectionBlockingMode() and setConnectionTimeout() + * methods). In blocking mode, this method has no effect since it's never called. + * The standard handler only outputs some information to the TRACE logger. + */ + virtual void notifyConnectionTimeout(); + /** Overwrite this function to be notified when a DIMSE error occurs. * The standard handler only outputs error information to the logger. * @param cond [in] The DIMSE error occurred. @@ -537,13 +556,26 @@ protected: */ virtual void notifyRECEIVEProgress(const unsigned long byteCount); - /** Overwrite this function to change the behavior of the listen() method. As long as no + /** This method can be used to return from the listen() loop in a controlled way. + * In order to use it, it must be overwritten in a derived class. As long as no * severe error occurs and this method returns OFFalse, the listen() method will wait * for incoming associations in an infinite loop. * @return The standard handler always returns OFFalse */ virtual OFBool stopAfterCurrentAssociation(); + /** This method can be used to return from the listen() loop in a controlled way. + * In order to use it, it must be overwritten in a derived class. As long as no + * severe error occurs and this method returns OFFalse, the listen() method will wait + * for incoming associations in an infinite loop. If this method returns OFTrue, the + * SCP will return from the listen() loop after a connection timeout occurs (see + * setConnectionTimeout() method). In blocking mode (see setConnectionBlockingMode() + * method), this method has no effect (it's never called) since the underlying + * routines will wait forever for an incoming TCP connection. + * @return The standard handler always returns OFFalse + */ + virtual OFBool stopAfterConnectionTimeout(); + // -- C-ECHO -- /** Standard handler for Verification Service Class (DICOM Echo). Returns echo response @@ -911,12 +943,15 @@ protected: * something goes wrong. Therefore, refusing an association because of wrong application * context name or no common presentation contexts with the SCU does NOT lead to an error. * @param network [in] Contains network parameters - * @return EC_Normal, if everything went fine, an error code otherwise + * @return EC_Normal, if everything went fine, DUL_NOASSOCIATIONREQUEST if a timeout + * occurs in non-blocking mode, DIMSE_ILLEGALASSOCIATION or ASC_NULLKEY if + * severe internal errors occured (should not happen) */ virtual OFCondition waitForAssociationRQ(T_ASC_Network *network); /** Actually process association request. - * @return EC_Normal if association could be processed, error otherwise. + * @return EC_Normal if association could be processed, ASC_NULLKEY otherwise + * (only if internal association structure is invalid, should never happen) */ virtual OFCondition processAssociationRQ(); diff --git a/dcmnet/include/dcmtk/dcmnet/scpcfg.h b/dcmnet/include/dcmtk/dcmnet/scpcfg.h index 343b666c..8ab72b41 100644 --- a/dcmnet/include/dcmtk/dcmnet/scpcfg.h +++ b/dcmnet/include/dcmtk/dcmnet/scpcfg.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2012-2015, OFFIS e.V. + * Copyright (C) 2012-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -53,7 +53,8 @@ public: DcmSCPConfig(const DcmSCPConfig &old); /** assignment operator, performs deep copy. - * @param obj the config to copy from + * @param obj the config to copy from + * @return Reference to "this" object */ DcmSCPConfig &operator=(const DcmSCPConfig &obj); diff --git a/dcmnet/libsrc/Makefile.dep b/dcmnet/libsrc/Makefile.dep index 7804750e..c91f5561 100644 --- a/dcmnet/libsrc/Makefile.dep +++ b/dcmnet/libsrc/Makefile.dep @@ -390,23 +390,26 @@ dcmlayer.o: dcmlayer.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../include/dcmtk/dcmnet/dndefine.h ../include/dcmtk/dcmnet/dcmtrans.h + ../include/dcmtk/dcmnet/dndefine.h ../include/dcmtk/dcmnet/dcmtrans.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h dcmtrans.o: dcmtrans.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmnet/dcmtrans.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmnet/dcmlayer.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../include/dcmtk/dcmnet/dndefine.h ../include/dcmtk/dcmnet/dcompat.h \ + ../include/dcmtk/dcmnet/dcmlayer.h ../include/dcmtk/dcmnet/dndefine.h \ + ../include/dcmtk/dcmnet/dcompat.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h \ ../include/dcmtk/dcmnet/diutil.h ../include/dcmtk/dcmnet/dicom.h \ ../include/dcmtk/dcmnet/cond.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ - ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ @@ -445,7 +448,6 @@ dcmtrans.o: dcmtrans.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ - ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ diff --git a/dcmnet/libsrc/assoc.cc b/dcmnet/libsrc/assoc.cc index acb8756e..8a3530e2 100644 --- a/dcmnet/libsrc/assoc.cc +++ b/dcmnet/libsrc/assoc.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -1292,7 +1292,7 @@ OFCondition ASC_setIdentRQUserPassword( T_ASC_Parameters * params, const OFString& userName, const OFString& password, - const OFBool& requestRsp) + const OFBool requestRsp) { if (params == NULL) return ASC_NULLKEY; @@ -1305,8 +1305,8 @@ OFCondition ASC_setIdentRQUserPassword( else rq->clear(); rq->setIdentityType(ASC_USER_IDENTITY_USER_PASSWORD); - rq->setPrimField(userName.c_str(), userName.length()); - rq->setSecField(password.c_str(), password.length()); + rq->setPrimField(userName.c_str(), OFstatic_cast(Uint16, userName.length())); + rq->setSecField(password.c_str(), OFstatic_cast(Uint16, password.length())); rq->setReqPosResponse(requestRsp); params->DULparams.reqUserIdentNeg = rq; return EC_Normal; @@ -1316,7 +1316,7 @@ OFCondition ASC_setIdentRQUserPassword( OFCondition ASC_setIdentRQUserOnly( T_ASC_Parameters * params, const OFString& userName, - const OFBool& requestRsp) + const OFBool requestRsp) { if (params == NULL) return ASC_NULLKEY; @@ -1329,7 +1329,7 @@ OFCondition ASC_setIdentRQUserOnly( else rq->clear(); rq->setIdentityType(ASC_USER_IDENTITY_USER); - rq->setPrimField(userName.c_str(), userName.length()); + rq->setPrimField(userName.c_str(), OFstatic_cast(Uint16, userName.length())); rq->setReqPosResponse(requestRsp); params->DULparams.reqUserIdentNeg = rq; return EC_Normal; @@ -1339,8 +1339,8 @@ OFCondition ASC_setIdentRQUserOnly( OFCondition ASC_setIdentRQKerberos( T_ASC_Parameters * params, const char* kerbTicket, - const Uint16& length, - const OFBool& requestRsp) + const Uint16 length, + const OFBool requestRsp) { if (params == NULL) return ASC_NULLKEY; @@ -1360,8 +1360,8 @@ OFCondition ASC_setIdentRQKerberos( OFCondition ASC_setIdentRQSaml( T_ASC_Parameters * params, const char* saml, - const Uint16& length, - const OFBool& requestRsp) + const Uint16 length, + const OFBool requestRsp) { if (params == NULL) return ASC_NULLKEY; diff --git a/dcmnet/libsrc/cond.cc b/dcmnet/libsrc/cond.cc index cb0cfc24..602b9910 100644 --- a/dcmnet/libsrc/cond.cc +++ b/dcmnet/libsrc/cond.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2012, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -87,6 +87,8 @@ makeOFConditionConst(NET_EC_InsufficientPortPrivileges, OFM_dcmnet, 1023, O // codes 1024 to 1073 are used for the association negotiation profile classes makeOFConditionConst(NET_EC_SCPBusy, OFM_dcmnet, 1074, OF_error, "SCP is busy"); makeOFConditionConst(NET_EC_CannotStartSCPThread, OFM_dcmnet, 1075, OF_error, "Cannot start SCP Thread"); +makeOFConditionConst(NET_EC_StopAfterAssociation, OFM_dcmnet, 1076, OF_ok, "Stop after current association (as requested)"); +makeOFConditionConst(NET_EC_StopAfterConnectionTimeout, OFM_dcmnet, 1077, OF_ok, "Stop after TCP connection timeout (as requested)"); OFString& DimseCondition::dump(OFString& str, OFCondition cond) diff --git a/dcmnet/libsrc/dccfpcmp.cc b/dcmnet/libsrc/dccfpcmp.cc index 8f688b4d..b944297a 100644 --- a/dcmnet/libsrc/dccfpcmp.cc +++ b/dcmnet/libsrc/dccfpcmp.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2003-2015, OFFIS e.V. + * Copyright (C) 2003-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -128,11 +128,11 @@ const DcmPresentationContextList* DcmPresentationContextMap::getPresentationCont } OFCondition DcmPresentationContextMap::add( - const char *key, - const char *abstractSyntaxUID, - const char *transferSyntaxKey) + const OFString& key, + const OFString& abstractSyntaxUID, + const OFString& transferSyntaxKey) { - if ((!key)||(!abstractSyntaxUID)||(!transferSyntaxKey)) return EC_IllegalCall; + if ((key.empty())||(abstractSyntaxUID.empty())||(transferSyntaxKey.empty())) return EC_IllegalCall; // perform syntax check of UID @@ -144,22 +144,22 @@ OFCondition DcmPresentationContextMap::add( return makeOFCondition(OFM_dcmnet, 1025, OF_error, s.c_str()); } - DcmPresentationContextList * const *value = NULL; + DcmPresentationContextList* value = NULL; OFString skey(key); OFMap::iterator it = map_.find(skey); // create new value if not existing yet if (it == map_.end()) { - DcmPresentationContextList *newentry = new DcmPresentationContextList(); + DcmPresentationContextList *newentry = new DcmPresentationContextList; map_.insert(OFPair(skey, newentry)); - value = &newentry; + value = newentry; } else // use existing value - value = & ((*it).second); + value = ((*it).second); // make sure list does not get longer than 128 entries - if (((*value)->size()) > 127) + if (((value)->size()) > 127) { OFString s("presentation context list too long (> 128 entries): "); s += key; @@ -167,7 +167,7 @@ OFCondition DcmPresentationContextMap::add( } // insert values into list. - (*value)->push_back(DcmPresentationContextItem(uid, OFString(transferSyntaxKey))); + (value)->push_back(DcmPresentationContextItem(uid, transferSyntaxKey)); return EC_Normal; } diff --git a/dcmnet/libsrc/dcmtrans.cc b/dcmnet/libsrc/dcmtrans.cc index 3e289184..f81316ec 100644 --- a/dcmnet/libsrc/dcmtrans.cc +++ b/dcmnet/libsrc/dcmtrans.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2016, OFFIS e.V. + * Copyright (C) 1998-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -53,17 +53,26 @@ END_EXTERN_C #include /* Use the Grand Unified Sockets Interface (GUSI) on Macintosh */ #endif +OFGlobal dcmSocketSendTimeout(60); +OFGlobal dcmSocketReceiveTimeout(60); + DcmTransportConnection::DcmTransportConnection(int openSocket) : theSocket(openSocket) { #ifndef HAVE_GUSI_H if (theSocket >= 0) { -#ifndef DISABLE_SEND_TIMEOUT +#ifdef DISABLE_SEND_TIMEOUT +#warning The macro DISABLE_SEND_TIMEOUT is not supported anymore. See "macros.txt" for details. +#endif + /* get global timeout for the send() function */ + const Sint32 sendTimeout = dcmSocketSendTimeout.get(); + if (sendTimeout >= 0) { - /* use a timeout of 60 seconds for the send() function */ - const int sendTimeout = 60; - DCMNET_DEBUG("setting network send timeout to " << sendTimeout << " seconds"); + if (sendTimeout == 0) + DCMNET_DEBUG("setting network send timeout to 0 (infinite)"); + else + DCMNET_DEBUG("setting network send timeout to " << sendTimeout << " seconds"); #ifdef HAVE_WINSOCK_H // for Windows, specify send timeout in milliseconds int timeoutVal = sendTimeout * 1000; @@ -82,12 +91,17 @@ DcmTransportConnection::DcmTransportConnection(int openSocket) DCMNET_WARN("cannot set network send timeout to " << sendTimeout << " seconds"); } } +#ifdef DISABLE_RECV_TIMEOUT +#warning The macro DISABLE_RECV_TIMEOUT is not supported anymore. See "macros.txt" for details. #endif -#ifndef DISABLE_RECV_TIMEOUT + /* get global timeout for the recv() function */ + const Sint32 recvTimeout = dcmSocketReceiveTimeout.get(); + if (recvTimeout >= 0) { - /* use a timeout of 60 seconds for the recv() function */ - const int recvTimeout = 60; - DCMNET_DEBUG("setting network receive timeout to " << recvTimeout << " seconds"); + if (recvTimeout == 0) + DCMNET_DEBUG("setting network receive timeout to 0 (infinite)"); + else + DCMNET_DEBUG("setting network receive timeout to " << recvTimeout << " seconds"); #ifdef HAVE_WINSOCK_H // for Windows, specify receive timeout in milliseconds int timeoutVal = recvTimeout * 1000; @@ -106,7 +120,6 @@ DcmTransportConnection::DcmTransportConnection(int openSocket) DCMNET_WARN("cannot set network receive timeout to " << recvTimeout << " seconds"); } } -#endif } #endif } @@ -136,12 +149,12 @@ OFBool DcmTransportConnection::safeSelectReadableAssociation(DcmTransportConnect { if (connections[i]) { - if (connections[i]->networkDataAvailable(timeToWait)) - { - i = connCount; /* break out of for loop */ - found = OFTrue; /* break out of while loop */ - } - timeToWait = 0; + if (connections[i]->networkDataAvailable(timeToWait)) + { + i = connCount; /* break out of for loop */ + found = OFTrue; /* break out of while loop */ + } + timeToWait = 0; } } /* for */ if (timeToWait == 1) return OFFalse; /* all entries NULL */ diff --git a/dcmnet/libsrc/dcompat.cc b/dcmnet/libsrc/dcompat.cc index 6ea030ae..424c2407 100644 --- a/dcmnet/libsrc/dcompat.cc +++ b/dcmnet/libsrc/dcompat.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2010, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -412,63 +412,3 @@ char *strerror(int errornum) #endif /* ! HAVE_STRERROR */ #endif - -#ifndef HAVE_TEMPNAM -/* - * These functions are not present on NeXTs but are used by the - * DB module. - */ - -char * -tempnam(char *dir, char *pfx) -{ -#define TMPDIR_1 "/usr/tmp" -#define TMPDIR_2 "/tmp" -#define AMODES (R_OK | W_OK | X_OK) - char *tmpdir = NULL; - char *env = NULL; - char prefix[6]; - char *name = NULL; - static unsigned short mix = 0; - - /* check environment variable first */ - if (((env = getenv("TMPDIR")) != NULL) && access(env, AMODES) == 0) { - tmpdir = env; - } else if (dir != NULL && access(dir, AMODES) == 0) { - tmpdir = dir; - } else if (access(TMPDIR_1, AMODES) == 0) { - tmpdir = TMPDIR_1; - } else if (access(TMPDIR_2, AMODES) == 0) { - tmpdir = TMPDIR_2; - } - - if (tmpdir == NULL) { - return NULL; /* no suitable directory found */ - } - - - name = (char*)malloc(strlen(tmpdir) + 1 + MIN(strlen(pfx), 5) + 15); - if (name == NULL) { - return NULL; /* malloc failure */ - } - - /* SUNOS Compatability: take the first 5 characters of prefix (pfx) */ - bzero(prefix, sizeof(prefix)); - strncpy(prefix, pfx, 5); - /* - * Find a suitable name. - * Use at most 14 characters for filename component of - * path. The last 5 characters use the process id, the middle - * 4 some hex number. - * note will recycle after about 65536 times - */ - - mix++; /* will recycle */ - - sprintf(name, "%s%c%s%04x%05d", tmpdir, PATH_SEPARATOR, prefix, - (unsigned int)mix, (int)OFStandard::getProcessID()); - - return name; -} - -#endif /* ! HAVE_TEMPNAM */ diff --git a/dcmnet/libsrc/dcuserid.cc b/dcmnet/libsrc/dcuserid.cc index 0397775a..39d095e7 100644 --- a/dcmnet/libsrc/dcuserid.cc +++ b/dcmnet/libsrc/dcuserid.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2010, OFFIS e.V. + * Copyright (C) 1997-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -30,8 +30,8 @@ /* ************************************************************************* */ // Constructor, sets constants -UserIdentityNegotiationSubItem::UserIdentityNegotiationSubItem() : - m_itemType (DUL_TYPENEGOTIATIONOFUSERIDENTITY), +UserIdentityNegotiationSubItem::UserIdentityNegotiationSubItem(const unsigned char itemType) : + m_itemType (itemType), m_reserved(0) { } @@ -42,6 +42,7 @@ UserIdentityNegotiationSubItem::UserIdentityNegotiationSubItem() : // Constructor, constructs empty Identity Negotiation structure UserIdentityNegotiationSubItemRQ::UserIdentityNegotiationSubItemRQ() : + UserIdentityNegotiationSubItem(DUL_TYPENEGOTIATIONOFUSERIDENTITY_REQ), m_userIdentityType(ASC_USER_IDENTITY_NONE) , m_posRspRequested(0) , m_primField(NULL) @@ -78,8 +79,7 @@ void UserIdentityNegotiationSubItemRQ::clear() // Sets identification mode -void -UserIdentityNegotiationSubItemRQ::setIdentityType(const T_ASC_UserIdentityNegotiationMode& mode) +void UserIdentityNegotiationSubItemRQ::setIdentityType(const T_ASC_UserIdentityNegotiationMode& mode) { m_userIdentityType = mode; } @@ -94,9 +94,8 @@ UserIdentityNegotiationSubItemRQ::getIdentityType() // Sets primary field (copied from parameter) -void -UserIdentityNegotiationSubItemRQ::setPrimField(const char *buffer, - const Uint16& length) +void UserIdentityNegotiationSubItemRQ::setPrimField(const char *buffer, + const Uint16 length) { if (m_primField != NULL) { @@ -113,9 +112,8 @@ UserIdentityNegotiationSubItemRQ::setPrimField(const char *buffer, // Sets secondary field (copied form parameter) -void -UserIdentityNegotiationSubItemRQ::setSecField(const char *buffer, - const Uint16& length) +void UserIdentityNegotiationSubItemRQ::setSecField(const char *buffer, + const Uint16 length) { if (m_secField != NULL) { @@ -132,9 +130,8 @@ UserIdentityNegotiationSubItemRQ::setSecField(const char *buffer, // Returns primary field. Memory must be freed by caller. -Uint16 -UserIdentityNegotiationSubItemRQ::getPrimField(char*& resultBuf, - Uint16& resultLen) const +Uint16 UserIdentityNegotiationSubItemRQ::getPrimField(char*& resultBuf, + Uint16& resultLen) const { if ((m_primFieldLength == 0) || (m_primField == NULL)) { @@ -150,9 +147,8 @@ UserIdentityNegotiationSubItemRQ::getPrimField(char*& resultBuf, // Returns secondary field. Memory must be freed by caller. -unsigned short -UserIdentityNegotiationSubItemRQ::getSecField(char*& resultBuf, - Uint16& resultLen) const +unsigned short UserIdentityNegotiationSubItemRQ::getSecField(char*& resultBuf, + Uint16& resultLen) const { if ((m_secFieldLength == 0) || (m_secField == NULL)) { @@ -451,8 +447,10 @@ UserIdentityNegotiationSubItemRQ::~UserIdentityNegotiationSubItemRQ() /* ************************************************************************* */ // Constructor -UserIdentityNegotiationSubItemAC::UserIdentityNegotiationSubItemAC() -: m_serverRsp(NULL), m_rspLength(0) +UserIdentityNegotiationSubItemAC::UserIdentityNegotiationSubItemAC() : + UserIdentityNegotiationSubItem(DUL_TYPENEGOTIATIONOFUSERIDENTITY_ACK), + m_serverRsp(NULL), + m_rspLength(0) { } diff --git a/dcmnet/libsrc/dimcmd.cc b/dcmnet/libsrc/dimcmd.cc index bf9f3994..9a291786 100644 --- a/dcmnet/libsrc/dimcmd.cc +++ b/dcmnet/libsrc/dimcmd.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2012, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -182,7 +182,7 @@ addString(DcmDataset *obj, DcmTagKey t, char *s, OFBool keepPadding) if (! keepPadding) DU_stripLeadingAndTrailingSpaces(s); - ec = newDicomElement(e, tag); + ec = DcmItem::newDicomElement(e, tag); if (ec == EC_Normal && s != NULL) { ec = e->putString(s); } @@ -255,7 +255,7 @@ addUS(DcmDataset *obj, DcmTagKey t, Uint16 us) DcmElement *e = NULL; DcmTag tag(t); - ec = newDicomElement(e, tag); + ec = DcmItem::newDicomElement(e, tag); if (ec == EC_Normal) { ec = e->putUint16(us); } @@ -306,7 +306,7 @@ addUL(DcmDataset *obj, DcmTagKey t, Uint32 ul) DcmElement *e = NULL; DcmTag tag(t); - ec = newDicomElement(e, tag); + ec = DcmItem::newDicomElement(e, tag); if (ec == EC_Normal) { ec = e->putUint32(ul); } @@ -367,7 +367,7 @@ addAttributeList(DcmDataset *obj, DcmTagKey t, Uint16 *lst, int listCount) return buildErrorWithMsg("dimcmd:addAttributeList: Error: Uneven listCount", t); } - ec = newDicomElement(e, tag); + ec = DcmItem::newDicomElement(e, tag); if (ec == EC_Normal) { ec = e->putUint16Array(lst, (listCount / 2)); } diff --git a/dcmnet/libsrc/dimse.cc b/dcmnet/libsrc/dimse.cc index 4770e0c5..43bee367 100644 --- a/dcmnet/libsrc/dimse.cc +++ b/dcmnet/libsrc/dimse.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -354,6 +354,8 @@ getTransferSyntax( case EXS_JPEGLSLossy: case EXS_JPEG2000LosslessOnly: case EXS_JPEG2000: + case EXS_JPEG2000MulticomponentLosslessOnly: + case EXS_JPEG2000Multicomponent: case EXS_MPEG2MainProfileAtMainLevel: case EXS_MPEG2MainProfileAtHighLevel: case EXS_MPEG4HighProfileLevel4_1: @@ -361,8 +363,8 @@ getTransferSyntax( case EXS_MPEG4HighProfileLevel4_2_For2DVideo: case EXS_MPEG4HighProfileLevel4_2_For3DVideo: case EXS_MPEG4StereoHighProfileLevel4_2: - case EXS_JPEG2000MulticomponentLosslessOnly: - case EXS_JPEG2000Multicomponent: + case EXS_HEVCMainProfileLevel5_1: + case EXS_HEVCMain10ProfileLevel5_1: #ifdef WITH_ZLIB case EXS_DeflatedLittleEndianExplicit: #endif diff --git a/dcmnet/libsrc/diutil.cc b/dcmnet/libsrc/diutil.cc index 34e8f997..905bc8c3 100644 --- a/dcmnet/libsrc/diutil.cc +++ b/dcmnet/libsrc/diutil.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -190,7 +190,7 @@ DU_putStringDOElement(DcmItem *obj, DcmTagKey t, const char *s) DcmElement *e = NULL; DcmTag tag(t); - ec = newDicomElement(e, tag); + ec = DcmItem::newDicomElement(e, tag); if (ec == EC_Normal && s != NULL) { ec = e->putString(s); } @@ -224,7 +224,7 @@ DU_putShortDOElement(DcmItem *obj, DcmTagKey t, Uint16 us) DcmElement *e = NULL; DcmTag tag(t); - ec = newDicomElement(e, tag); + ec = DcmItem::newDicomElement(e, tag); if (ec == EC_Normal) { ec = e->putUint16(us); } @@ -880,7 +880,7 @@ void DU_logSelectResult(int selectReturnValue) } else if (selectReturnValue == 0) { - DCMNET_DEBUG("Timeout while waiting for incoming network data"); + DCMNET_TRACE("Timeout while waiting for incoming network data"); } else { diff --git a/dcmnet/libsrc/dstorscu.cc b/dcmnet/libsrc/dstorscu.cc index 27b7b220..4cd7acf6 100644 --- a/dcmnet/libsrc/dstorscu.cc +++ b/dcmnet/libsrc/dstorscu.cc @@ -927,7 +927,7 @@ OFCondition DcmStorageSCU::sendSOPInstances() } -void DcmStorageSCU::notifySOPInstanceToBeSent(const TransferEntry &transferEntry) +void DcmStorageSCU::notifySOPInstanceToBeSent(const TransferEntry & /*transferEntry*/) { // do nothing in the default implementation } @@ -1129,7 +1129,7 @@ OFCondition DcmStorageSCU::checkSOPInstance(const OFString &sopClassUID, if (status.good()) { // in addition, check whether it is a known storage SOP class - if (!dcmIsaStorageSOPClassUID(sopClassUID.c_str())) + if (!dcmIsaStorageSOPClassUID(sopClassUID.c_str(), ESSC_All)) { // check whether the DICOM standard prefix for storage UIDs is used if (sopClassUID.compare(0, 23, "1.2.840.10008.5.1.4.1.1") == 0) diff --git a/dcmnet/libsrc/dul.cc b/dcmnet/libsrc/dul.cc index feca04dc..9a9aedf7 100644 --- a/dcmnet/libsrc/dul.cc +++ b/dcmnet/libsrc/dul.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2016, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -1791,31 +1791,50 @@ receiveTransportConnectionTCP(PRIVATE_NETWORKKEY ** network, #endif setTCPBufferLength(sock); -#ifndef DONT_DISABLE_NAGLE_ALGORITHM /* - * Disable the Nagle algorithm. - * This provides a 2-4 times performance improvement (WinNT4/SP4, 100Mbit/s Ethernet). - * Effects on other environments are unknown. - * The code below allows the Nagle algorithm to be enabled by setting the TCP_NODELAY environment - * variable to have value 0. + * Disable the so-called Nagle algorithm (if requested). + * This might provide a better network performance on some systems/environments. + * By default, the algorithm is not disabled unless DISABLE_NAGLE_ALGORITHM is defined. + * The default behavior can be changed by setting the environment variable TCP_NODELAY. */ + +#ifdef DONT_DISABLE_NAGLE_ALGORITHM +#warning The macro DONT_DISABLE_NAGLE_ALGORITHM is not supported anymore. See "macros.txt" for details. +#endif + +#ifdef DISABLE_NAGLE_ALGORITHM int tcpNoDelay = 1; // disable +#else + int tcpNoDelay = 0; // don't disable +#endif char* tcpNoDelayString = NULL; - if ((tcpNoDelayString = getenv("TCP_NODELAY")) != NULL) { - if (sscanf(tcpNoDelayString, "%d", &tcpNoDelay) != 1) { - DCMNET_WARN("DUL: cannot parse environment variable TCP_NODELAY=" << tcpNoDelayString); - } - } + DCMNET_TRACE("checking whether environment variable TCP_NODELAY is set"); + if ((tcpNoDelayString = getenv("TCP_NODELAY")) != NULL) + { + if (sscanf(tcpNoDelayString, "%d", &tcpNoDelay) != 1) + { + DCMNET_WARN("DUL: cannot parse environment variable TCP_NODELAY=" << tcpNoDelayString); + } + } else + DCMNET_TRACE(" environment variable TCP_NODELAY not set, using the default value (" << tcpNoDelay << ")"); if (tcpNoDelay) { - if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char*)&tcpNoDelay, sizeof(tcpNoDelay)) < 0) - { - char buf[256]; - OFString msg = "TCP Initialization Error: "; - msg += OFStandard::strerror(errno, buf, sizeof(buf)); - return makeDcmnetCondition(DULC_TCPINITERROR, OF_error, msg.c_str()); - } +#ifdef DISABLE_NAGLE_ALGORITHM + DCMNET_DEBUG("DUL: disabling Nagle algorithm as defined at compilation time (DISABLE_NAGLE_ALGORITHM)"); +#else + DCMNET_DEBUG("DUL: disabling Nagle algorithm as requested at runtime (TCP_NODELAY=" << tcpNoDelayString << ")"); +#endif + if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char*)&tcpNoDelay, sizeof(tcpNoDelay)) < 0) + { + char buf[256]; + OFString msg = "TCP Initialization Error: "; + msg += OFStandard::strerror(errno, buf, sizeof(buf)); + return makeDcmnetCondition(DULC_TCPINITERROR, OF_error, msg.c_str()); + } +#ifdef DISABLE_NAGLE_ALGORITHM + } else { + DCMNET_DEBUG("DUL: do not disable Nagle algorithm as requested at runtime (TCP_NODELAY=" << tcpNoDelayString << ")"); +#endif } -#endif // DONT_DISABLE_NAGLE_ALGORITHM // create string containing numerical IP address. OFString client_dns_name; @@ -2268,29 +2287,31 @@ setTCPBufferLength(int sock) char *TCPBufferLength; int bufLen; - /* - * Use a 64K default socket buffer length, fitting the MTU size of the loopback device implementation - * in recent Linux kernel versions. - * Different environments, particularly slower networks may require different values for optimal - * performance. - */ #ifdef HAVE_GUSI_H /* GUSI always returns an error for setsockopt(...) */ #else - bufLen = 65536; // a socket buffer size of 64K gives best throughput for image transmission + /* + * check whether environment variable TCP_BUFFER_LENGTH is set. + * If not, the the operating system is responsible for selecting + * appropriate values for the TCP send and receive buffer lengths. + */ + DCMNET_TRACE("checking whether environment variable TCP_BUFFER_LENGTH is set"); if ((TCPBufferLength = getenv("TCP_BUFFER_LENGTH")) != NULL) { - if (sscanf(TCPBufferLength, "%d", &bufLen) != 1) { - DCMNET_WARN("DUL: cannot parse environment variable TCP_BUFFER_LENGTH=" << TCPBufferLength); - } - } + if (sscanf(TCPBufferLength, "%d", &bufLen) == 1) { #if defined(SO_SNDBUF) && defined(SO_RCVBUF) - (void) setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *) &bufLen, sizeof(bufLen)); - (void) setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *) &bufLen, sizeof(bufLen)); + if (bufLen == 0) + bufLen = 65536; // a socket buffer size of 64K gives good throughput for image transmission + DCMNET_DEBUG("DUL: setting TCP buffer length to " << bufLen << " bytes"); + (void) setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *) &bufLen, sizeof(bufLen)); + (void) setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *) &bufLen, sizeof(bufLen)); #else - DCMNET_WARN("DULFSM: setTCPBufferLength: " - "cannot set TCP buffer length socket option: " - "code disabled because SO_SNDBUF and SO_RCVBUF constants are unknown"); + DCMNET_WARN("DUL: setTCPBufferLength: cannot set TCP buffer length socket option: " + << "code disabled because SO_SNDBUF and SO_RCVBUF constants are unknown"); #endif // SO_SNDBUF and SO_RCVBUF + } else + DCMNET_WARN("DUL: cannot parse environment variable TCP_BUFFER_LENGTH=" << TCPBufferLength); + } else + DCMNET_TRACE(" environment variable TCP_BUFFER_LENGTH not set, using the system defaults"); #endif // HAVE_GUSI_H } diff --git a/dcmnet/libsrc/dulconst.cc b/dcmnet/libsrc/dulconst.cc index 6ec4f9ed..810634a9 100644 --- a/dcmnet/libsrc/dulconst.cc +++ b/dcmnet/libsrc/dulconst.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2011, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -1093,7 +1093,7 @@ constructExtNeg(unsigned char type, SOPClassExtendedNegotiationSubItem* extNeg = *i; extNeg->itemType = 0x56; // recompute the length fields - extNeg->sopClassUIDLength = extNeg->sopClassUID.length(); + extNeg->sopClassUIDLength = OFstatic_cast(unsigned short, extNeg->sopClassUID.length()); extNeg->itemLength = 2 + extNeg->sopClassUIDLength + extNeg->serviceClassAppInfoLength; length = 4 + extNeg->itemLength; *rtnLength += length; @@ -1457,7 +1457,7 @@ streamSCUSCPRole(PRV_SCUSCPROLE * scuscpRole, unsigned char *b, COPY_SHORT_BIG(length, b); b += 2; - length = strlen(scuscpRole->SOPClassUID); + length = OFstatic_cast(unsigned short, strlen(scuscpRole->SOPClassUID)); COPY_SHORT_BIG(length, b); b += 2; @@ -1503,7 +1503,7 @@ streamExtNeg(SOPClassExtendedNegotiationSubItem* extNeg, unsigned char *b, unsig extNeg->itemType = 0x56; // recompute the length fields - extNeg->sopClassUIDLength = extNeg->sopClassUID.length(); + extNeg->sopClassUIDLength = OFstatic_cast(unsigned short, extNeg->sopClassUID.length()); extNeg->itemLength = 2 + extNeg->sopClassUIDLength + extNeg->serviceClassAppInfoLength; *b++ = extNeg->itemType; diff --git a/dcmnet/libsrc/dulfsm.cc b/dcmnet/libsrc/dulfsm.cc index eadee9c4..1b6cf783 100644 --- a/dcmnet/libsrc/dulfsm.cc +++ b/dcmnet/libsrc/dulfsm.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -2203,21 +2203,10 @@ requestAssociationTCP(PRIVATE_NETWORKKEY ** network, } server.sin_family = AF_INET; -#ifdef NO_WINDOWS95_ADDRESS_TRANSLATION_WORKAROUND - hp = OFStandard::getHostByName(node); - if (!hp) - { - char buf2[4095]; // node could be a long string - sprintf(buf2, "Attempt to connect to unknown host: %s", node); - return makeDcmnetCondition(DULC_UNKNOWNHOST, OF_error, buf2); - } - (void) memcpy(&server.sin_addr, hp.h_addr.c_str(), (size_t) hp.h_length); -#else /* - * Under Win95 gethostbyname will not accept an IP address e.g. - * "134.106.1.1". This appears to work without problems under WindowsNT - * and several Unix variants. - * Workaround is to explicitly handle the IP address case. + * At least officially, gethostbyname will not accept an IP address on many + * operating systems (e.g. Windows or FreeBSD), so we need to explicitly + * handle the IP address case. */ unsigned long addr = inet_addr(node); if (addr != INADDR_NONE) { @@ -2234,7 +2223,6 @@ requestAssociationTCP(PRIVATE_NETWORKKEY ** network, } (void) memcpy(&server.sin_addr, hp.h_addr.c_str(), (size_t) hp.h_length); } -#endif server.sin_port = (unsigned short) htons(port); @@ -2433,33 +2421,50 @@ requestAssociationTCP(PRIVATE_NETWORKKEY ** network, #endif setTCPBufferLength(s); -#ifndef DONT_DISABLE_NAGLE_ALGORITHM /* - * Disable the Nagle algorithm. - * This provides a 2-4 times performance improvement (WinNT4/SP4, 100Mbit/s Ethernet). - * Effects on other environments are unknown. - * The code below allows the Nagle algorithm to be enabled by setting the TCP_NODELAY environment - * variable to have value 0. + * Disable the so-called Nagle algorithm (if requested). + * This might provide a better network performance on some systems/environments. + * By default, the algorithm is not disabled unless DISABLE_NAGLE_ALGORITHM is defined. + * The default behavior can be changed by setting the environment variable TCP_NODELAY. */ + +#ifdef DONT_DISABLE_NAGLE_ALGORITHM +#warning The macro DONT_DISABLE_NAGLE_ALGORITHM is not supported anymore. See "macros.txt" for details. +#endif + +#ifdef DISABLE_NAGLE_ALGORITHM int tcpNoDelay = 1; // disable +#else + int tcpNoDelay = 0; // don't disable +#endif char* tcpNoDelayString = NULL; + DCMNET_TRACE("checking whether environment variable TCP_NODELAY is set"); if ((tcpNoDelayString = getenv("TCP_NODELAY")) != NULL) { - if (sscanf(tcpNoDelayString, "%d", &tcpNoDelay) != 1) - { - DCMNET_WARN("DULFSM: cannot parse environment variable TCP_NODELAY=" << tcpNoDelayString); - } - } + if (sscanf(tcpNoDelayString, "%d", &tcpNoDelay) != 1) + { + DCMNET_WARN("DULFSM: cannot parse environment variable TCP_NODELAY=" << tcpNoDelayString); + } + } else + DCMNET_TRACE(" environment variable TCP_NODELAY not set, using the default value (" << tcpNoDelay << ")"); if (tcpNoDelay) { - if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char*)&tcpNoDelay, sizeof(tcpNoDelay)) < 0) - { - char buf[256]; - OFString msg = "TCP Initialization Error: "; - msg += OFStandard::strerror(errno, buf, sizeof(buf)); - return makeDcmnetCondition(DULC_TCPINITERROR, OF_error, msg.c_str()); - } +#ifdef DISABLE_NAGLE_ALGORITHM + DCMNET_DEBUG("DULFSM: disabling Nagle algorithm as defined at compilation time (DISABLE_NAGLE_ALGORITHM)"); +#else + DCMNET_DEBUG("DULFSM: disabling Nagle algorithm as requested at runtime (TCP_NODELAY=" << tcpNoDelayString << ")"); +#endif + if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char*)&tcpNoDelay, sizeof(tcpNoDelay)) < 0) + { + char buf[256]; + OFString msg = "TCP Initialization Error: "; + msg += OFStandard::strerror(errno, buf, sizeof(buf)); + return makeDcmnetCondition(DULC_TCPINITERROR, OF_error, msg.c_str()); + } +#ifdef DISABLE_NAGLE_ALGORITHM + } else { + DCMNET_DEBUG("DULFSM: do not disable Nagle algorithm as requested at runtime (TCP_NODELAY=" << tcpNoDelayString << ")"); +#endif } -#endif // DONT_DISABLE_NAGLE_ALGORITHM DcmTransportLayerStatus tcsStatus; if (TCS_ok != (tcsStatus = (*association)->connection->clientSideHandshake())) @@ -3738,30 +3743,31 @@ setTCPBufferLength(int sock) char *TCPBufferLength; int bufLen; - /* - * Use a 64K default socket buffer length, fitting the MTU size of the loopback device implementation - * in recent Linux kernel versions. - * Different environments, particularly slower networks may require different values for optimal - * performance. - */ #ifdef HAVE_GUSI_H /* GUSI always returns an error for setsockopt(...) */ #else - bufLen = 65536; // a socket buffer size of 64K gives best throughput for image transmission + /* + * check whether environment variable TCP_BUFFER_LENGTH is set. + * If not, the the operating system is responsible for selecting + * appropriate values for the TCP send and receive buffer lengths. + */ + DCMNET_TRACE("checking whether environment variable TCP_BUFFER_LENGTH is set"); if ((TCPBufferLength = getenv("TCP_BUFFER_LENGTH")) != NULL) { - if (sscanf(TCPBufferLength, "%d", &bufLen) != 1) - { - DCMNET_WARN("DULFSM: cannot parse environment variable TCP_BUFFER_LENGTH=" << TCPBufferLength); - } - } + if (sscanf(TCPBufferLength, "%d", &bufLen) == 1) { #if defined(SO_SNDBUF) && defined(SO_RCVBUF) - (void) setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *) &bufLen, sizeof(bufLen)); - (void) setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *) &bufLen, sizeof(bufLen)); + if (bufLen == 0) + bufLen = 65536; // a socket buffer size of 64K gives good throughput for image transmission + DCMNET_DEBUG("DULFSM: setting TCP buffer length to " << bufLen << " bytes"); + (void) setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *) &bufLen, sizeof(bufLen)); + (void) setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (char *) &bufLen, sizeof(bufLen)); #else - DCMNET_WARN("DULFSM: setTCPBufferLength: " - "cannot set TCP buffer length socket option: " - "code disabled because SO_SNDBUF and SO_RCVBUF constants are unknown"); + DCMNET_WARN("DULFSM: setTCPBufferLength: cannot set TCP buffer length socket option: " + << "code disabled because SO_SNDBUF and SO_RCVBUF constants are unknown"); #endif // SO_SNDBUF and SO_RCVBUF + } else + DCMNET_WARN("DULFSM: cannot parse environment variable TCP_BUFFER_LENGTH=" << TCPBufferLength); + } else + DCMNET_TRACE(" environment variable TCP_BUFFER_LENGTH not set, using the system defaults"); #endif // HAVE_GUSI_H } diff --git a/dcmnet/libsrc/dulparse.cc b/dcmnet/libsrc/dulparse.cc index 8a10d323..1d344f51 100644 --- a/dcmnet/libsrc/dulparse.cc +++ b/dcmnet/libsrc/dulparse.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -466,7 +466,7 @@ parseUserInfo(DUL_USERINFO * userInfo, userInfo->type = *buf++; // skip unused ("reserved") field userInfo->rsv1 = *buf++; - // get and remeber announced length of user data + // get and remember announced length of user data EXTRACT_SHORT_BIG(buf, userInfo->length); // .. and skip over the two length field bytes buf += 2; @@ -546,7 +546,8 @@ parseUserInfo(DUL_USERINFO * userInfo, userLength -= (unsigned short) length; break; - case DUL_TYPENEGOTIATIONOFUSERIDENTITY: + case DUL_TYPENEGOTIATIONOFUSERIDENTITY_REQ: + case DUL_TYPENEGOTIATIONOFUSERIDENTITY_ACK: if (typeRQorAC == DUL_TYPEASSOCIATERQ) usrIdent = new UserIdentityNegotiationSubItemRQ(); else // assume DUL_TYPEASSOCIATEAC @@ -838,7 +839,7 @@ makeUnderflowError(const char *pdu, unsigned long minuend, unsigned long subtrahend) { OFStringStream stream; - stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtrat " << subtrahend << " bytes of data"; + stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtract " << subtrahend << " bytes of data"; stream << "." << OFStringStream_ends; OFCondition ret; diff --git a/dcmnet/libsrc/scp.cc b/dcmnet/libsrc/scp.cc index af52ad90..8796ed09 100644 --- a/dcmnet/libsrc/scp.cc +++ b/dcmnet/libsrc/scp.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2009-2016, OFFIS e.V. + * Copyright (C) 2009-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -73,7 +73,7 @@ OFCondition DcmSCP::setConfig(const DcmSCPConfig& config) { if (isConnected()) { - return EC_IllegalCall; // TODO: need to find better error code + return NET_EC_AlreadyConnected; } m_cfg = DcmSharedSCPConfig( config ); return EC_Normal; @@ -123,16 +123,39 @@ OFCondition DcmSCP::listen() // successfully. Now, we want to start handling all incoming requests. Since // this activity is supposed to represent a server process, we do not want to // terminate this activity (unless indicated by the stopAfterCurrentAssociation() - // method). Hence, create an infinite while-loop. - while( cond.good() && !stopAfterCurrentAssociation() ) + // or stopAfterConnectionTimeout() methods). + while( cond.good() ) { // Wait for an association and handle the requests of // the calling applications correspondingly. cond = waitForAssociationRQ(network); + + // Check whether we have a timeout + if (cond == DUL_NOASSOCIATIONREQUEST) + { + // If a stop is requested, stop + if (stopAfterConnectionTimeout()) + { + cond = NET_EC_StopAfterConnectionTimeout; + break; + } + else + { + // stay in loop + cond = EC_Normal; + } + } + // Stop if SCP is told to stop after association was handled + else if (stopAfterCurrentAssociation()) + { + cond = NET_EC_StopAfterAssociation; + break; + } } + // Drop the network, i.e. free memory of T_ASC_Network* structure. This call // is the counterpart of ASC_initializeNetwork(...) which was called above. - cond = ASC_dropNetwork( &network ); + ASC_dropNetwork( &network ); network = NULL; // return ok @@ -294,9 +317,6 @@ void DcmSCP::refuseAssociation(const DcmRefuseReasonType reason) // Reject the association request. ASC_rejectAssociation( m_assoc, &rej ); - - // Drop and destroy the association. - dropAndDestroyAssociation(); } // ---------------------------------------------------------------------------- @@ -314,20 +334,37 @@ OFCondition DcmSCP::waitForAssociationRQ(T_ASC_Network *network) OFCondition cond = ASC_receiveAssociation( network, &m_assoc, m_cfg->getMaxReceivePDULength(), NULL, NULL, OFFalse, m_cfg->getConnectionBlockingMode(), OFstatic_cast(int, timeout) ); - // just return, if timeout occurred (DUL_NOASSOCIATIONREQUEST) + // In case of a timeout in non-blocking mode, call notifier (and return + // to main event loop later) if ( cond == DUL_NOASSOCIATIONREQUEST ) { - return EC_Normal; + notifyConnectionTimeout(); } - - // if error occurs close association and return - if( cond.bad() ) + else { - dropAndDestroyAssociation(); - return EC_Normal; + // If association could be received, handle it + if( cond.good() ) + { + cond = processAssociationRQ(); + // There was an association which has ended now: + // Call notifier and output separator line. + notifyAssociationTermination(); + DCMNET_DEBUG( "+++++++++++++++++++++++++++++" ); + } + // Else, if we could not receive an association request since there was + // some error, just ignore it (and continue in main event loop later) + else + { + DCMNET_ERROR("Could not receive association request: " << cond.text()); + cond = EC_Normal; + } } - return processAssociationRQ(); + // We are done with this association, free it and set to NULL. + // ASC_receiveAssociation will always create a related structure, even + // if no association was received at all. + dropAndDestroyAssociation(); + return cond; } @@ -344,7 +381,6 @@ OFCondition DcmSCP::processAssociationRQ() if (desiredAction == DCMSCP_ACTION_REFUSE_ASSOCIATION) { refuseAssociation( DCMSCP_INTERNAL_ERROR ); - dropAndDestroyAssociation(); return EC_Normal; } else desiredAction = DCMSCP_ACTION_UNDEFINED; // reset for later use @@ -357,7 +393,6 @@ OFCondition DcmSCP::processAssociationRQ() if( m_cfg->getRefuseAssociation() ) { refuseAssociation( DCMSCP_FORCED ); - dropAndDestroyAssociation(); return EC_Normal; } @@ -368,7 +403,6 @@ OFCondition DcmSCP::processAssociationRQ() if( cond.bad() || strcmp( buf, DICOM_STDAPPLICATIONCONTEXT ) != 0 ) { refuseAssociation( DCMSCP_BAD_APPLICATION_CONTEXT_NAME ); - dropAndDestroyAssociation(); return EC_Normal; } @@ -377,14 +411,12 @@ OFCondition DcmSCP::processAssociationRQ() if (!checkCalledAETitleAccepted(m_assoc->params->DULparams.calledAPTitle)) { refuseAssociation( DCMSCP_CALLED_AE_TITLE_NOT_RECOGNIZED ); - dropAndDestroyAssociation(); return EC_Normal; } if (!checkCallingAETitleAccepted(m_assoc->params->DULparams.callingAPTitle)) { refuseAssociation( DCMSCP_CALLING_AE_TITLE_NOT_RECOGNIZED ); - dropAndDestroyAssociation(); return EC_Normal; } @@ -402,7 +434,6 @@ OFCondition DcmSCP::processAssociationRQ() cond = negotiateAssociation(); if( cond.bad() ) { - dropAndDestroyAssociation(); return EC_Normal; } @@ -417,7 +448,6 @@ OFCondition DcmSCP::processAssociationRQ() else DCMNET_DEBUG(ASC_dumpParameters(tempStr, m_assoc->params, ASC_ASSOC_RJ)); refuseAssociation( DCMSCP_NO_PRESENTATION_CONTEXTS ); - dropAndDestroyAssociation(); return EC_Normal; } @@ -425,7 +455,6 @@ OFCondition DcmSCP::processAssociationRQ() cond = ASC_acknowledgeAssociation( m_assoc ); if( cond.bad() ) { - dropAndDestroyAssociation(); return EC_Normal; } notifyAssociationAcknowledge(); @@ -438,9 +467,10 @@ OFCondition DcmSCP::processAssociationRQ() else DCMNET_DEBUG(ASC_dumpParameters(tempStr, m_assoc->params, ASC_ASSOC_AC)); - // Go ahead and handle the association (i.e. handle the callers requests) in this process - handleAssociation(); - return EC_Normal; + // Go ahead and handle the association (i.e. handle the caller's requests) in this process + handleAssociation(); + + return EC_Normal; } // ---------------------------------------------------------------------------- @@ -533,12 +563,6 @@ void DcmSCP::handleAssociation() notifyDIMSEError(cond); ASC_abortAssociation( m_assoc ); } - - // Drop and destroy the association. - dropAndDestroyAssociation(); - - // Output separator line. - DCMNET_DEBUG( "+++++++++++++++++++++++++++++" ); } // ---------------------------------------------------------------------------- @@ -1862,9 +1886,9 @@ OFString DcmSCP::getPeerIP() const void DcmSCP::dropAndDestroyAssociation() { + if (m_assoc) { - notifyAssociationTermination(); ASC_dropSCPAssociation( m_assoc ); ASC_destroyAssociation( &m_assoc ); } @@ -1927,6 +1951,7 @@ void DcmSCP::notifyReleaseRequest() DCMNET_INFO("Received Association Release Request"); } + // ---------------------------------------------------------------------------- void DcmSCP::notifyAbortRequest() @@ -1943,6 +1968,13 @@ void DcmSCP::notifyAssociationTermination() // ---------------------------------------------------------------------------- +void DcmSCP::notifyConnectionTimeout() +{ + DCMNET_TRACE("Connection timeout encountered in non-blocking mode"); +} + +// ---------------------------------------------------------------------------- + void DcmSCP::notifyDIMSEError(const OFCondition &cond) { OFString tempStr; @@ -1956,6 +1988,13 @@ OFBool DcmSCP::stopAfterCurrentAssociation() return OFFalse; } +// ---------------------------------------------------------------------------- + +OFBool DcmSCP::stopAfterConnectionTimeout() +{ + return OFFalse; +} + /* ************************************************************************* */ /* Callback functions */ diff --git a/dcmnet/tests/CMakeLists.txt b/dcmnet/tests/CMakeLists.txt index 31bd7123..2044aa1e 100644 --- a/dcmnet/tests/CMakeLists.txt +++ b/dcmnet/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # declare executables -DCMTK_ADD_EXECUTABLE(dcmnet_tests tests tdump tpool) +DCMTK_ADD_EXECUTABLE(dcmnet_tests tests tdump tpool tscuscp) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(dcmnet_tests dcmnet) diff --git a/dcmnet/tests/Makefile.dep b/dcmnet/tests/Makefile.dep index e7e8333e..f2cec330 100644 --- a/dcmnet/tests/Makefile.dep +++ b/dcmnet/tests/Makefile.dep @@ -237,3 +237,130 @@ tpool.o: tpool.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmnet/dccfprmp.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmnet/diutil.h \ ../include/dcmtk/dcmnet/scu.h +tscuscp.o: tscuscp.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h ../include/dcmtk/dcmnet/scp.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmnet/assoc.h ../include/dcmtk/dcmnet/dicom.h \ + ../include/dcmtk/dcmnet/cond.h ../include/dcmtk/dcmnet/dndefine.h \ + ../include/dcmtk/dcmnet/dcompat.h \ + ../../ofstd/include/dcmtk/ofstd/ofbmanip.h ../include/dcmtk/dcmnet/lst.h \ + ../include/dcmtk/dcmnet/dul.h ../include/dcmtk/dcmnet/extneg.h \ + ../include/dcmtk/dcmnet/dcuserid.h ../include/dcmtk/dcmnet/dimse.h \ + ../include/dcmtk/dcmnet/scpcfg.h ../include/dcmtk/dcmnet/dcasccff.h \ + ../include/dcmtk/dcmnet/dcasccfg.h ../include/dcmtk/dcmnet/dccftsmp.h \ + ../include/dcmtk/dcmnet/dccfuidh.h ../include/dcmtk/dcmnet/dccfpcmp.h \ + ../include/dcmtk/dcmnet/dccfrsmp.h ../include/dcmtk/dcmnet/dccfenmp.h \ + ../include/dcmtk/dcmnet/dccfprmp.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmnet/diutil.h \ + ../include/dcmtk/dcmnet/scu.h diff --git a/dcmnet/tests/Makefile.in b/dcmnet/tests/Makefile.in index d3553c58..0cf0e5c5 100644 --- a/dcmnet/tests/Makefile.in +++ b/dcmnet/tests/Makefile.in @@ -21,9 +21,9 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include \ LIBDIRS = -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc \ -L$(dcmdatadir)/libsrc -L$(dcmtlsdir)/libsrc $(compr_libdirs) LOCALLIBS = -ldcmnet -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(TCPWRAPPERLIBS) \ - $(ICONVLIBS) + $(CHARCONVLIBS) -objs = tests.o tdump.o tpool.o +objs = tests.o tdump.o tpool.o tscuscp.o progs = tests diff --git a/dcmnet/tests/tests.cc b/dcmnet/tests/tests.cc index 69c04e0f..c22672ca 100644 --- a/dcmnet/tests/tests.cc +++ b/dcmnet/tests/tests.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2012-2013, OFFIS e.V. + * Copyright (C) 2012-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -27,6 +27,11 @@ OFTEST_REGISTER(dcmnet_dimseDump_nullByte); #ifdef WITH_THREADS OFTEST_REGISTER(dcmnet_scp_pool); +OFTEST_REGISTER(dcmnet_scp_stop_after_current_association); +OFTEST_REGISTER(dcmnet_scp_stop_after_timeout); +OFTEST_REGISTER(dcmnet_scp_no_stop_wo_request_noblock); +OFTEST_REGISTER(dcmnet_scp_no_stop_wo_request_block); +OFTEST_REGISTER(dcmnet_scp_no_term_notify_without_association); #endif // WITH_THREADS OFTEST_MAIN("dcmnet") diff --git a/dcmnet/tests/tscuscp.cc b/dcmnet/tests/tscuscp.cc new file mode 100644 index 00000000..b4787628 --- /dev/null +++ b/dcmnet/tests/tscuscp.cc @@ -0,0 +1,340 @@ +/* + * + * Copyright (C) 2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * Open Connections GmbH + * Stau 33 + * D-26122 Oldenburg, Germany + * + * + * Module: dcmnet + * + * Author: Michael Onken + * + * Purpose: Test DcmSPC and DcmSCU classes (only certain aspects so far) + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#ifdef WITH_THREADS + +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/dcmnet/scp.h" +#include "dcmtk/dcmnet/scu.h" + +/** SCP derived from DcmSCP in order to test two types of virtual methods: + *
    + *
  • Notifiers: Called for some events happening in DcmSCP. So far + * only the notifiers notifyConnectionTimeout() as and notifyAssociationTermination + * are tested
  • + *
  • Setters: Functions returning a value in order to enforce + * a specific DcmSCP behaviour. So far, only stopAfterCurrentAssociation() and + * stopAfterConnectionTimeout() are tested. + *
+ * Additionally the SCP derives from OFThread in order to construct the + * test case (i.e. send data with SCU at the same time and check results). + */ +struct TestSCP: DcmSCP, OFThread +{ + + /** Constructor + */ + TestSCP() : + DcmSCP(), + m_listen_result(EC_NotYetImplemented), // value indicating "not set" + m_set_stop_after_assoc(OFFalse), + m_set_stop_after_timeout(OFFalse), + m_stop_after_assoc_result(OFFalse), + m_stop_after_timeout_result(OFFalse), + m_notify_connection_timeout_result(OFFalse), + m_notify_assoc_termination_result(OFFalse) + { + } + + /** Clear settings + */ + void clear() + { + m_listen_result = EC_NotYetImplemented; + m_set_stop_after_assoc = OFFalse; + m_set_stop_after_timeout = OFFalse; + m_stop_after_assoc_result = OFFalse; + m_stop_after_timeout_result = OFFalse; + m_notify_connection_timeout_result = OFFalse; + m_notify_assoc_termination_result = OFFalse; + + } + + /** Overwrite method from DcmSCP in order to test feature to stop after current + * association. + * @return Returns value of m_set_stop_after_assoc + */ + virtual OFBool stopAfterCurrentAssociation() + { + if (m_set_stop_after_assoc) + { + m_stop_after_assoc_result = OFTrue; + } + return m_set_stop_after_assoc; + } + + /** Overwrite method from DcmSCP in order to test feature to stop after + * the SCP's connection timeout occurred in non-blocking mode. + * @return Returns value of m_set_stop_after_timeout + */ + virtual OFBool stopAfterConnectionTimeout() + { + if (m_set_stop_after_timeout) + { + m_stop_after_timeout_result = OFTrue; + } + return m_set_stop_after_timeout; + } + + /** Overwrite method from DcmSCP in order to test feature that SCP reports + * connection timeout in non-blocking mode. + */ + virtual void notifyConnectionTimeout() + { + m_notify_connection_timeout_result = OFTrue; + } + + /** Overwrite method from DcmSCP in order to test feature that SCP reports + * the termination of an association. + */ + virtual void notifyAssociationTermination() + { + m_notify_assoc_termination_result = OFTrue; + } + + /// The result returned my SCP's listen() method + OFCondition m_listen_result; + /// If set, the SCP should stop after the currently running association + OFBool m_set_stop_after_assoc; + /// If set, the SCP should stop after TCP timeout occurred in non-blocking mode + OFBool m_set_stop_after_timeout; + /// Indicator whether related virtual function was called and returned accordingly + OFBool m_stop_after_assoc_result; + /// Indicator whether related virtual function was called and returned accordingly + OFBool m_stop_after_timeout_result; + /// Indicator whether related virtual notifier function was called + OFBool m_notify_connection_timeout_result; + /// Indicator whether related virtual notifier function was called + OFBool m_notify_assoc_termination_result; + + /** Method called by OFThread to start SCP operation. Starts listen() loop of DcmSCP. + */ + virtual void run() + { + m_listen_result = listen(); + } + +}; + +/** Configure Verification SOP class on server + * @param cfg The SCP configuration to modify + */ +void configure_scp_for_echo(DcmSCPConfig& cfg) +{ + cfg.setPort(11112); + OFList xfers; + xfers.push_back(UID_LittleEndianImplicitTransferSyntax); + cfg.addPresentationContext(UID_VerificationSOPClass, xfers); +} + + +/** Send ECHO to SCP + * @param called_ae_title The Called AE Title to be used + * @param do_release If OFTrue, SCU should release the association (otherwise + * we expect the SCP to do that. + * @param secs_after_echo Seconds to wait after sending echo + */ +void scu_sends_echo( + const OFString& called_ae_title, + const OFBool do_release = OFTrue, + const int secs_after_echo = 0) +{ + // make sure server is up + OFStandard::sleep(2); + DcmSCU scu; + scu.setAETitle("TEST_SCU"); + scu.setPeerAETitle(called_ae_title); + scu.setPeerHostName("localhost"); + scu.setPeerPort(11112); + OFList xfers; + xfers.push_back(UID_LittleEndianImplicitTransferSyntax); + OFCondition result = scu.addPresentationContext(UID_VerificationSOPClass, xfers); + OFCHECK(result.good()); + result = scu.initNetwork(); + OFCHECK(result.good()); + result = scu.negotiateAssociation(); + OFCHECK(result.good()); + result = scu.sendECHORequest(1); + OFCHECK(result.good()); + OFStandard::sleep(secs_after_echo); + if (do_release) + { + result = scu.releaseAssociation(); + OFCHECK(result.good()); + } + + return; +} + + +// Test case that checks whether server returns after association if enabled +OFTEST_FLAGS(dcmnet_scp_stop_after_current_association, EF_Slow) +{ + TestSCP scp; + DcmSCPConfig& config = scp.getConfig(); + configure_scp_for_echo(config); + + config.setAETitle("STOP_AFTER_ASSOC"); + config.setConnectionBlockingMode(DUL_BLOCK); + scp.start(); + + scu_sends_echo("STOP_AFTER_ASSOC"); + OFStandard::sleep(1); // make sure server would have time to return + + // Check whether all test variables have the correct values + OFCHECK(scp.m_listen_result == EC_NotYetImplemented); // still listening + OFCHECK(scp.m_stop_after_assoc_result == OFFalse); + OFCHECK(scp.m_stop_after_timeout_result == OFFalse); + OFCHECK(scp.m_notify_connection_timeout_result == OFFalse); + OFCHECK(scp.m_notify_assoc_termination_result == OFTrue); // scu released association + + // Tell SCP to stop after association and run SCU again + scp.clear(); + scp.m_set_stop_after_assoc = OFTrue; + scu_sends_echo("STOP_AFTER_ASSOC"); + OFStandard::sleep(1); + + // Check whether all test variables have the correct values + OFCHECK(scp.m_listen_result == NET_EC_StopAfterAssociation); + OFCHECK(scp.m_stop_after_timeout_result == OFFalse); + OFCHECK(scp.m_notify_connection_timeout_result == OFFalse); + OFCHECK(scp.m_notify_assoc_termination_result == OFTrue); // scu released association + + scp.join(); + OFCHECK(scp.m_listen_result == NET_EC_StopAfterAssociation); +} + + +OFTEST_FLAGS(dcmnet_scp_stop_after_timeout, EF_Slow) +{ + TestSCP scp; + DcmSCPConfig& config = scp.getConfig(); + configure_scp_for_echo(config); + + config.setAETitle("STOP_AFTER_TMOUT"); + config.setConnectionBlockingMode(DUL_NOBLOCK); + config.setConnectionTimeout(3); + scp.m_set_stop_after_timeout = OFTrue; + scp.start(); + + scu_sends_echo("STOP_AFTER_TMOUT"); + OFStandard::sleep(5); // make sure server has enough time to run into timeout + + // Check whether all test variables have the correct values + OFCHECK(scp.m_stop_after_assoc_result == OFFalse); + OFCHECK(scp.m_stop_after_timeout_result == OFTrue); // virtual "decision" method actually called + OFCHECK(scp.m_notify_connection_timeout_result == OFTrue); // virtual notifier method actually called + OFCHECK(scp.m_notify_assoc_termination_result == OFTrue); // scu released association + + scp.join(); + OFCHECK(scp.m_listen_result == NET_EC_StopAfterConnectionTimeout); // SCP returns, using specific return code +} + + +// Check whether SCP does not stop without request in blocking mode +OFTEST_FLAGS(dcmnet_scp_no_stop_wo_request_noblock, EF_Slow) +{ + TestSCP scp; + DcmSCPConfig& config = scp.getConfig(); + configure_scp_for_echo(config); + + config.setAETitle("NO_STOP_NOBLOCK"); + config.setConnectionBlockingMode(DUL_NOBLOCK); + config.setConnectionTimeout(1); + scp.m_set_stop_after_timeout = OFFalse; + scp.start(); + + scu_sends_echo("NO_STOP_NOBLOCK"); + OFStandard::sleep(3); // should enough for the SCP to run into a timeout (1 sec) + + // Check whether all test variables have the correct values + OFCHECK(scp.m_listen_result == EC_NotYetImplemented); // still listening + OFCHECK(scp.m_stop_after_assoc_result == OFFalse); + OFCHECK(scp.m_stop_after_timeout_result == OFFalse); + OFCHECK(scp.m_notify_connection_timeout_result == OFTrue); // Timeout occurred, but we do not stop + OFCHECK(scp.m_notify_assoc_termination_result == OFTrue); // SCU released association + + // Stop (already tested in former test cases) + scp.m_set_stop_after_timeout = OFTrue; + scp.join(); +} + + +// Check whether SCP does not stop without request in blocking mode +OFTEST_FLAGS(dcmnet_scp_no_stop_wo_request_block, EF_Slow) +{ + TestSCP scp; + DcmSCPConfig& config = scp.getConfig(); + configure_scp_for_echo(config); + + + config.setAETitle("NO_STOP_BLOCK"); + config.setConnectionBlockingMode(DUL_BLOCK); + scp.start(); + + scu_sends_echo("NO_STOP_BLOCK"); + OFStandard::sleep(3); // should enough for the SCP to run into a timeout (1 sec) + + // Check whether all test variables have the correct values + // SCP did not return yet (check whether it is still connected, + // since no test for m_listen_result possible) + OFCHECK(scp.m_listen_result == EC_NotYetImplemented); // still listening + OFCHECK(scp.m_stop_after_assoc_result == OFFalse); + OFCHECK(scp.m_stop_after_timeout_result == OFFalse); + OFCHECK(scp.m_notify_connection_timeout_result == OFFalse); + OFCHECK(scp.m_notify_assoc_termination_result == OFTrue); // SCU released association + + // Stop (already tested in former test cases), therefore, send another echo + scp.m_set_stop_after_assoc = OFTrue; + scu_sends_echo("NO_STOP_BLOCK"); + + scp.join(); +} + + +// Check association termination notifier does not fire when there was no +// association at all +OFTEST_FLAGS(dcmnet_scp_no_term_notify_without_association, EF_Slow) +{ + TestSCP scp; + DcmSCPConfig& config = scp.getConfig(); + configure_scp_for_echo(config); + + config.setAETitle("NO_TERM_WO_ASSOC"); + config.setConnectionBlockingMode(DUL_NOBLOCK); + config.setConnectionTimeout(1); + scp.m_set_stop_after_timeout = OFTrue; + scp.start(); + OFStandard::sleep(3); // make sure server runs into timeout + // Check whether all test variables have the correct values. + OFCHECK(scp.m_stop_after_assoc_result == OFFalse); + OFCHECK(scp.m_stop_after_timeout_result == OFFalse); + OFCHECK(scp.m_notify_connection_timeout_result == OFFalse); + OFCHECK(scp.m_notify_assoc_termination_result == OFFalse); // no notification + + scp.join(); + OFCHECK(scp.m_listen_result == NET_EC_StopAfterConnectionTimeout); // SCP ran into timeout +} + + +#endif // WITH_THREADS diff --git a/dcmpmap/CMakeLists.txt b/dcmpmap/CMakeLists.txt new file mode 100644 index 00000000..5871a54c --- /dev/null +++ b/dcmpmap/CMakeLists.txt @@ -0,0 +1,10 @@ +# declare project +PROJECT(dcmpmaps) + +# declare include directories which hold for all subdirectories +INCLUDE_DIRECTORIES(${dcmpmaps_SOURCE_DIR}/include ${dcmfg_SOURCE_DIR}/include ${dcmiod_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${ZLIB_INCDIR}) + +# recurse into subdirectories +FOREACH(SUBDIR libsrc include) + ADD_SUBDIRECTORY(${SUBDIR}) +ENDFOREACH(SUBDIR) diff --git a/dcmpmap/Makefile.in b/dcmpmap/Makefile.in new file mode 100644 index 00000000..0a973a07 --- /dev/null +++ b/dcmpmap/Makefile.in @@ -0,0 +1,86 @@ +# +# Makefile for dcmpmaps +# + +@SET_MAKE@ + +SHELL = /bin/sh +VPATH = @srcdir@:@top_srcdir@/include:@top_srcdir@/@configdir@/include +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: include-all libsrc-all tests-all + +install: install-doc install-support + +install-doc: docs-install + +install-data: data-install + +install-etc: etc-install + +install-include: include-install + +install-lib: libsrc-install install-include + +install-support: install-data install-etc + + +include-all: + (cd include && $(MAKE) ARCH="$(ARCH)" all) + +libsrc-all: include-all + (cd libsrc && $(MAKE) ARCH="$(ARCH)" all) + +tests-all: libsrc-all + (cd tests && $(MAKE) ARCH="$(ARCH)" all) + + +check: tests-all + (cd tests && $(MAKE) check) + +check-exhaustive: tests-all + (cd tests && $(MAKE) check-exhaustive) + + +include-install: + (cd include && $(MAKE) ARCH="$(ARCH)" install) + +libsrc-install: libsrc-all + (cd libsrc && $(MAKE) ARCH="$(ARCH)" install) + +docs-install: + (cd docs && $(MAKE) install) + +data-install: + (cd data && $(MAKE) install) + +etc-install: + (cd etc && $(MAKE) install) + + +clean: + (cd include && $(MAKE) clean) + (cd libsrc && $(MAKE) clean) + (cd tests && $(MAKE) clean) + (cd docs && $(MAKE) clean) + (cd data && $(MAKE) clean) + (cd etc && $(MAKE) clean) + rm -f $(TRASH) + +distclean: + (cd include && $(MAKE) distclean) + (cd libsrc && $(MAKE) distclean) + (cd tests && $(MAKE) distclean) + (cd docs && $(MAKE) distclean) + (cd data && $(MAKE) distclean) + (cd etc && $(MAKE) distclean) + rm -f $(DISTTRASH) + +dependencies: + (cd libsrc && touch $(DEP) && $(MAKE) dependencies) +# (cd tests && touch $(DEP) && $(MAKE) dependencies) diff --git a/dcmpmap/configure b/dcmpmap/configure new file mode 100755 index 00000000..3877a6a1 --- /dev/null +++ b/dcmpmap/configure @@ -0,0 +1,53 @@ +#! /bin/sh + +parentdir=`pwd` +thisdir=$parentdir + +# The following test constructs relative path from the module +# directory to the configuration directory. If you know this path +# you can substitute this with +# configdir= +# It is very important that the configdir path is relative. + +configdir="configdir" + +while test "$parentdir" != "/" -a "$configdir" = "configdir"; do + if test -d "$parentdir/config" ; then + configdir=$parentdir/config + else + parentdir=`echo $parentdir | sed 's/\/[^\/]*$//'` + fi +done + +if test "$configdir" = "configdir" ; then + echo "Cannot find configure directory" + exit 1 +fi + +if test $# != 0; then + case $1 in + -a) + shift + cd "$configdir" + echo "running configure in config-directory" + ./configure $* + cd $thisdir + echo "running configure for this module" + sh "$configdir/confmod" --srcdir=. $* + ;; + -c) + shift + cd "$configdir" + echo "running configure in config-directory" + ./configure $* + ;; + *) + echo "running configure for this module" + sh "$configdir/confmod" --srcdir=. $* + ;; + esac +else + echo "running configure for this module" + sh "$configdir/confmod" --srcdir=. $* +fi + diff --git a/dcmpmap/data/Makefile.in b/dcmpmap/data/Makefile.in new file mode 100644 index 00000000..fb38e304 --- /dev/null +++ b/dcmpmap/data/Makefile.in @@ -0,0 +1,23 @@ +# +# Makefile for dcmpmap/data +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/docs/Makefile.in b/dcmpmap/docs/Makefile.in new file mode 100644 index 00000000..80daadea --- /dev/null +++ b/dcmpmap/docs/Makefile.in @@ -0,0 +1,23 @@ +# +# Makefile for dcmpmap/docs +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/docs/dcmpmap.dox b/dcmpmap/docs/dcmpmap.dox new file mode 100644 index 00000000..0c8da07a --- /dev/null +++ b/dcmpmap/docs/dcmpmap.dox @@ -0,0 +1,527 @@ +/*! + +\page mod_dcmpmap dcmpmap: a library for working with parametric map objects + +This module contains classes to create, load, access and store DICOM Parametric +Map objects, which have originally been introduced to the DICOM standard with +Supplement +172 in 2014. + +In the standard, the data inside each Parametric Map object must rely on one of +these data types: + +\li 16 bit unsigned integer +\li 16 bit signed integer +\li 32 bit floating point +\li 64 bit floating point + +All of them are supported by the dcmpmap library. + +The main class of this module is: +\li \b DPMParametricMapIOD + +This module makes heavy use of the \ref mod_dcmiod "dcmiod" module for managing +common IOD attributes and the \ref mod_dcmfg "dcmfg" module for functional group +support. Read the "Examples" sections for more explanations. + +\section dcmpmap_examples Examples + +The following two examples show: +\li How to access and dump information (including the binary data values) from a +Parametric Map object +\li and how to use the API to create such an object yourself. + +\subsection example_dump Dumping information from Parametric Map + +The Parametric Map class uses a template in order to instantiate the correct +pixel data type internally, and to offer a dedicated API for that type. Allowed +types are Uint16, Sint16, Float32 and Float64. + +Since internally the data types are handled in a C++ Variant, the usual concept +to "switch" between these types in code is to use a Visitor which overloads the +operator "()" for each data type that can occur in the Variant. This concept is +also demonstrated below where the type of pixel data is printed. + +The rest of the code uses the API of the \ref mod_dcmiod "dcmiod" and +\ref mod_dcmfg "dcmfg" module in order to get basic information about Patient, +Study, Series and Instance, as well as functional group information, especially +the Real World Value Mapping defined in the file. + +\code +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmpmap/dpmparametricmapiod.h" + +static void dumpRWVM(const unsigned long frameNumber, + FGInterface& fg) +{ + FGRealWorldValueMapping* rw = OFstatic_cast(FGRealWorldValueMapping*, fg.get(frameNumber, DcmFGTypes::EFG_REALWORLDVALUEMAPPING)); + if (rw) + { + size_t numMappings = rw->getRealWorldValueMapping().size(); + COUT << " Number of Real World Value Mappings defined: " << numMappings << OFendl; + for (size_t m = 0; m < numMappings; m++) + { + FGRealWorldValueMapping::RWVMItem* item = rw->getRealWorldValueMapping()[m]; + OFString label, expl; + item->getLUTLabel(label); + item->getLUTExplanation(expl); + COUT << " RWVM Mapping #" << m << ":" << OFendl; + COUT << " LUT Label: << " << label << OFendl; + COUT << " LUT Explanation: " << expl << OFendl; + COUT << " Measurement Units Code: " << item->getMeasurementUnitsCode().toString() << OFendl; + size_t numQuant = item->getEntireQuantityDefinitionSequence().size(); + if (numQuant > 0) + { + COUT << " Number of Quantities defined: " << numQuant << OFendl; + for (size_t q = 0; q < numQuant; q++) + { + ContentItemMacro* macro = item->getEntireQuantityDefinitionSequence()[q]; + COUT << " Quantity #" << q << ": " << macro->toString() << OFendl; + } + } + } + } + else + { + CERR << " Error: No Real World Value Mappings defined for frame #" << frameNumber << OFendl; + } +} + +class DumpFramesVisitor +{ +public: + + DumpFramesVisitor(DPMParametricMapIOD* map, + const unsigned long numPerFrame) + : m_Map(map) + , m_numPerFrame(numPerFrame) + { + } + + template + OFBool operator()(DPMParametricMapIOD::Frames& frames) + { + dumpDataType(frames); + for (unsigned long f = 0; f < m_Map->getNumberOfFrames(); f++) + { + COUT << "Dumping info of frame #" << f << ":" << OFendl; + FGInterface& fg = m_Map->getFunctionalGroups(); + dumpRWVM(f, fg); + COUT << "Dumping data for frame #" << f << ": " << OFendl; + T* frame = frames.getFrame(f); + for (unsigned long p = 0; p < m_numPerFrame; p++) + { + COUT << frame[p] << " "; + } + COUT << OFendl << OFendl; + } + return 0; + } + + OFBool operator()(OFCondition& cond) + { + // Avoid compiler warning + (void)cond; + CERR << "Type of data samples not supported" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 32 Bit float data" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 16 Bit unsigned integer data" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 16 Bit signed integer data" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 64 Bit float data" << OFendl; + return OFTrue; + } + + template + OFBool dumpDataType(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + CERR << "Type of data samples not supported" << OFendl; + return OFFalse; + } + + DPMParametricMapIOD* m_Map; + unsigned long m_numPerFrame; + +}; + + +static void dumpGeneral(DPMParametricMapIOD& map) +{ + OFString patName, patID, studyUID, studyDate, seriesUID, modality, sopUID; + map.getPatient().getPatientName(patName); + map.getPatient().getPatientID(patID); + map.getStudy().getStudyInstanceUID(studyUID); + map.getStudy().getStudyDate(studyDate); + map.getSeries().getSeriesInstanceUID(seriesUID); + map.getSeries().getModality(modality); + map.getSOPCommon().getSOPInstanceUID(sopUID); + COUT << "Patient Name : " << patName << OFendl; + COUT << "Patient ID : " << patID << OFendl; + COUT << "Study Instance UID : " << studyUID << OFendl; + COUT << "Study Date : " << studyDate << OFendl; + COUT << "Series Instance UID: " << seriesUID << OFendl; + COUT << "SOP Instance UID : " << sopUID << OFendl; + COUT << "---------------------------------------------------------------" << OFendl; + OFBool isPerFrame; + map.getFunctionalGroups().get(0, DcmFGTypes::EFG_REALWORLDVALUEMAPPING, isPerFrame); + if (isPerFrame) + { + COUT << "Real World Value Mapping: Defined per-frame" << OFendl; + } + else + { + COUT << "Real World Value Mapping: Defined shared (i.e. single definition for all frames):" << OFendl; + } + COUT << "---------------------------------------------------------------" << OFendl; +} + + +int main (int argc, char* argv[]) +{ + // OFLog::configure(OFLogger::DEBUG_LOG_LEVEL); + OFString inputFile; + if (argc < 2) + { + CERR << "Usage: dump_pmp " << std::endl; + return 1; + } + else + { + inputFile = argv[1]; + if (!OFStandard::fileExists(inputFile)) + { + CERR << "Input file " << inputFile << " does not exist " << OFendl; + return 1; + } + } + + OFvariant result = DPMParametricMapIOD::loadFile(inputFile); + if (OFget(&result)) + { + DPMParametricMapIOD* map = *OFget(&result); + dumpGeneral(*map); + COUT << "Dumping #" << map->getNumberOfFrames() << " frames of file " << inputFile << OFendl; + Uint16 rows, cols = 0; + map->getRows(rows); + map->getColumns(cols); + unsigned long numPerFrame = rows * cols; + DPMParametricMapIOD::FramesType frames = map->getFrames(); + OFvisit(DumpFramesVisitor(map, numPerFrame), frames); + } + else + { + CERR << "Could not load parametric map: " << (*OFget(&result)).text() << OFendl; + exit(1); + } + exit(0); +} + +\endcode + + +\subsection example_create Creation of Parametric Maps + +The Parametric Map class uses a template in order to instantiate the correct +pixel data type internally, and to offer a dedicated API for that type. Allowed +types are Uint16, Sint16, Float32 and Float64. The example below demonstrates +that the API use is generally the same for all types. + +The procedure in the example (and most of it applies for the general case) is as +follows: + +\li The main() routine calls test_pmap() four times, each time using a different +Image Pixel Module as template parameter which makes sure that the right pixel +data type is used within the created Parametric Map. +\li test_pmap() demonstrates the overall steps to create the map: +\li Create a new Parametric Map by calling DPMParametricMapIOD::create() +(via create_pmap()), and then +\li add shared functional groups, +\li add dimensions, +\li and add frames with the related per-frame functional groups to the object. +\li Finally, general data regarding Patient and Study is set. +\li Note that the order of these steps in test_pmap() does not matter. + + +Per default, DPMParametricMapIOD::create() creates a new DICOM instance, within +a brand-new DICOM Series that belongs to a brand-new DICOM Study. All minimal +information for Patient, Study and Series will be set (e.g. Study, Series and +SOP Instance UID as well as other information that is handed over to the +create() call, like Series Number). Patient Name and ID are left empty per +default. + +Of course, often you might want to put the new instance into an existing Series +instead, or place the brand-new Series into an existing Study or at least assign +it to an existing Patient. The easiest way to to do that is to use the call +import() that imports Patient or even Study, Series and Frame of Reference +information from an existing file, i.e. place it under an existing Patient, +Study and/or Series. + +When adding information to the Parametric Map using the public API, some basic +checks are usually performed on the data. Finally, when calling saveFile(), some +further checks take place, e.g. validating the structure of the functional +groups or making sure that all required element values are set. + +\code + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmparametricmapiod.h" +#include "dcmtk/dcmfg/fgpixmsr.h" +#include "dcmtk/dcmfg/fgplanpo.h" +#include "dcmtk/dcmfg/fgplanor.h" +#include "dcmtk/dcmfg/fgfracon.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" +#include "dcmtk/dcmfg/fgframevoilut.h" +#include "dcmtk/dcmfg/fgrealworldvaluemapping.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" + +const size_t NUM_FRAMES = 10; +const Uint16 ROWS = 10; +const Uint16 COLS = 10; +const unsigned long NUM_VALUES_PER_FRAME = ROWS * COLS; + + +// Set Patient and Study example data +static void setGenericData(DPMParametricMapIOD& map) +{ + map.getPatient().setPatientName("Onken^Michael"); + map.getPatient().setPatientID("007"); + map.getStudy().setStudyDate("20160721"); + map.getStudy().setStudyTime("111200"); + map.getStudy().setStudyID("4711"); +} + + +// Create Parametric Map +template +static OFvariant create_pmap() +{ + return DPMParametricMapIOD::create + ( + "MR", // Modality + "1", // Series Number + "1", // Instance Number + ROWS, + COLS, + IODEnhGeneralEquipmentModule::EquipmentInfo("Open Connections GmbH", "make_pmp", "SN_0815", "0.1"), + ContentIdentificationMacro("1", "PARAMAP_LABEL", "Example description from test program", "Onken^Michael"), + "VOLUME", // Image Flavor + "MTT", // Derived Pixel Contrast + DPMTypes::CQ_RESEARCH // Content Qualification + ); +} + + +// Add those functional groups that are common for all frames +static OFCondition addSharedFunctionalGroups(DPMParametricMapIOD& map) +{ + FGPixelMeasures pixelMeasures; + pixelMeasures.setPixelSpacing("1\\1"); + pixelMeasures.setSliceThickness("0.1"); + pixelMeasures.setSpacingBetweenSlices("0.1"); + FGPlaneOrientationPatient planeOrientPatientFG; + planeOrientPatientFG.setImageOrientationPatient("1", "0", "0", "0", "1", "0"); + FGFrameAnatomy frameAnaFG; + frameAnaFG.setLaterality(FGFrameAnatomy::LATERALITY_UNPAIRED); + frameAnaFG.getAnatomy().getAnatomicRegion().set("T-A0100", "SRT", "Brain"); + FGIdentityPixelValueTransformation idTransFG; + FGParametricMapFrameType frameTypeFG; + frameTypeFG.setFrameType("DERIVED\\PRIMARY\\VOLUME\\MTT"); + + // Add groups to Parametric Map + OFCondition result; + if ((result = map.addForAllFrames(pixelMeasures)).good()) + if ((result = map.addForAllFrames(planeOrientPatientFG)).good()) + if ((result = map.addForAllFrames(frameAnaFG)).good()) + if ((result = map.addForAllFrames(idTransFG)).good()) + result = map.addForAllFrames(frameTypeFG); + + return result; +} + + +// Add a single dimension for demonstration purposes based on "Image Position Patient" +static OFCondition addDimensions(DPMParametricMapIOD& map) +{ + IODMultiframeDimensionModule& mod = map.getIODMultiframeDimensionModule(); + OFString dimUID = DcmIODUtil::createUID(0); + OFCondition result = mod.addDimensionIndex(DCM_ImagePositionPatient, dimUID, DCM_RealWorldValueMappingSequence, "Frame position"); + return result; +} + + +// Add one frame to parametric map. Frame number is used to compute some +// varying example data values differing from frame to frame +template +static OFCondition addFrame(DPMParametricMapIOD& map, + const unsigned long frameNo) +{ + // Create example data + + OFVector data(NUM_VALUES_PER_FRAME); + for (size_t n=0; n < data.size(); ++n) + { + data[n] = (n*frameNo+n) + (0.1 * (frameNo % 10)); + } + + Uint16 rows, cols; + OFCondition cond = map.getImagePixel().getRows(rows); + cond = map.getImagePixel().getColumns(cols); + + // Create functional groups + OFVector groups; + OFunique_ptr fgPlanePos(new FGPlanePosPatient); + OFunique_ptr fgFracon(new FGFrameContent); + OFunique_ptr fgRVWM(new FGRealWorldValueMapping()); + FGRealWorldValueMapping::RWVMItem* rvwmItemSimple = new FGRealWorldValueMapping::RWVMItem(); + if (!fgPlanePos || !fgFracon || !fgRVWM || !rvwmItemSimple ) + return EC_MemoryExhausted; + + // Fill in functional group values + + // Real World Value Mapping + rvwmItemSimple->setRealWorldValueSlope(10); + rvwmItemSimple->setRealWorldValueIntercept(0); + rvwmItemSimple->setDoubleFloatRealWorldValueFirstValueMapped(0.12345); + rvwmItemSimple->setDoubleFloatRealWorldValueLastValueMapped(98.7654); + rvwmItemSimple->getMeasurementUnitsCode().set("{counts}/s", "UCUM", "Counts per second"); + rvwmItemSimple->setLUTExplanation("We are mapping trash to junk."); + rvwmItemSimple->setLUTLabel("Just testing"); + CodeSequenceMacro* qCodeName = new CodeSequenceMacro("G-C1C6", "SRT", "Quantity"); + CodeSequenceMacro* qSpec = new CodeSequenceMacro("110805", "SRT", "T2 Weighted MR Signal Intensity"); + ContentItemMacro* quantity = new ContentItemMacro; + if (!quantity || !qSpec || !quantity) + return EC_MemoryExhausted; + quantity->getEntireConceptNameCodeSequence().push_back(qCodeName); + quantity->getEntireConceptCodeSequence().push_back(qSpec); + rvwmItemSimple->getEntireQuantityDefinitionSequence().push_back(quantity); + quantity->setValueType(ContentItemMacro::VT_CODE); + fgRVWM->getRealWorldValueMapping().push_back(rvwmItemSimple); + + // Plane Position + OFStringStream ss; + ss << frameNo; + OFSTRINGSTREAM_GETOFSTRING(ss, framestr) // convert number to string + fgPlanePos->setImagePositionPatient("0", "0", framestr); + + // Frame Content + OFCondition result = fgFracon->setDimensionIndexValues(frameNo+1 /* value within dimension */, 0 /* first dimension */); + + // Add frame wit related groups + if (result.good()) + { + // Add frame + groups.push_back(fgPlanePos.get()); + groups.push_back(fgFracon.get()); + groups.push_back(fgRVWM.get()); + groups.push_back(fgPlanePos.get()); + DPMParametricMapIOD::FramesType frames = map.getFrames(); + result = OFget >(&frames)->addFrame(&*data.begin(), NUM_VALUES_PER_FRAME, groups); + } + + return result; +} + + +// Main routine that creates Parametric Maps +template +static OFCondition test_pmap(const OFString& saveDestination) +{ + OFvariant obj = create_pmap(); + if (OFCondition* pCondition = OFget(&obj)) + return *pCondition; + + DPMParametricMapIOD& map = *OFget(&obj); + + OFCondition result; + if ((result = addSharedFunctionalGroups(map)).good()) + if ((result = addDimensions(map)).good()) + { + // Add frames (parametric map data), and per-frame functional groups + for (unsigned long f = 0; result.good() && (f < NUM_FRAMES); f++) + result = addFrame(map, f); + } + + // Set some generic data (keep dciodvfy happy on DICOMDIR warnings) + if (result.good()) + { + setGenericData(map); + } + + // Save + if (result.good()) + { + return map.saveFile(saveDestination.c_str()); + } + else + { + return result; + } +} + + +int main (int argc, char* argv[]) +{ + OFString outputDir; + if (argc < 2) + { + CERR << "Usage: make_pmp " << std::endl; + return 1; + } + else + { + outputDir = argv[1]; + if (!OFStandard::dirExists(outputDir)) + { + CERR << "Output directory " << outputDir << " does not exist " << OFendl; + return 1; + } + } + + //OFLog::configure(OFLogger::DEBUG_LOG_LEVEL); + + // Test all possible parametric map types (signed and unsigned integer, floating point + // and double floating point) + + test_pmap >(outputDir + "/uint_paramap.dcm"); + test_pmap >(outputDir + "/sint_paramap.dcm"); + test_pmap(outputDir + "/float_paramap.dcm"); + test_pmap(outputDir + "/double_paramap.dcm"); + + return 0; +} + +\endcode + +*/ diff --git a/dcmpmap/etc/Makefile.in b/dcmpmap/etc/Makefile.in new file mode 100644 index 00000000..31690d7b --- /dev/null +++ b/dcmpmap/etc/Makefile.in @@ -0,0 +1,23 @@ +# +# Makefile for dcmpmap/etc +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/include/CMakeLists.txt b/dcmpmap/include/CMakeLists.txt new file mode 100644 index 00000000..fc29ca7a --- /dev/null +++ b/dcmpmap/include/CMakeLists.txt @@ -0,0 +1,2 @@ +# declare installation files +INSTALL(DIRECTORY dcmtk/dcmpmap DESTINATION ${DCMTK_INSTALL_INCDIR}/dcmtk COMPONENT include FILES_MATCHING PATTERN "*.h" PATTERN "CVS" EXCLUDE) diff --git a/dcmpmap/include/Makefile.in b/dcmpmap/include/Makefile.in new file mode 100644 index 00000000..37af7030 --- /dev/null +++ b/dcmpmap/include/Makefile.in @@ -0,0 +1,27 @@ +# +# Makefile for dcmpmap/include +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + $(configdir)/mkinstalldirs $(DESTDIR)$(includedir)/dcmtk/dcmpmap + for file in dcmtk/dcmpmap/*.h ; do \ + $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/dcmtk/dcmpmap ;\ + done + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h b/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h new file mode 100644 index 00000000..82f89c09 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h @@ -0,0 +1,37 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Contains preprocessor definitions + * + */ + + +#ifndef DPMDEF_H +#define DPMDEF_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofdefine.h" + +// definitions for DLL/shared library exports + +#ifdef dcmpmap_EXPORTS +#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_EXPORT +#else +#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_IMPORT +#endif + +#endif // DPMDEF_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h new file mode 100644 index 00000000..0da18dee --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h @@ -0,0 +1,304 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Image Module + * + */ + +#ifndef DPMMODPARAMETRICMAPIMAGE_H +#define DPMMODPARAMETRICMAPIMAGE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofmem.h" +#include "dcmtk/dcmiod/iodrules.h" +#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmpmap/dpmdef.h" + +/** Class representing the Parametric Map Image Module: + * + * ImageType: (CS, 2-n, 1) + * SamplesPerPixel: (US, 1, 1) + * PhotometricInterpretation: (CS, 1, 1) + * BitsAllocated: (US, 1, 1) + * BitsStored: (US, 1, 1C) + * HighBit: (US, 1, 1C) + * PresentationLUTShape: (CS, 1, 1) + * LossyImageCompression: (CS, 1, 1) + * LossyImageCompressionRatio: (DS, 1-n, 1C) + * LossyImageCompressionMethod: (CS, 1-n, 1C) + * BurnedInAnnotation: (CS, 1, 1) + * RecognizableVisualFeatures: (CS, 1, 1) + * ContentQualification: (CS, 1, 1) + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapImageModule : public IODModule +{ +public: + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + DPMParametricMapImageModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + DPMParametricMapImageModule(); + + /** Destructor + */ + virtual ~DPMParametricMapImageModule(); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module ("DPMParametricMapImageModule") + * @return Name of the module ("DPMParametricMapImageModule") + */ + virtual OFString getName() const; + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Get Image Type + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getImageType(OFString &value, + const signed long pos = 0) const; + + /** Get Samples Per Pixel + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSamplesPerPixel(Uint16 &value, + const signed long pos = 0) const; + + /** Get Photometric Interpretation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPhotometricInterpretation(OFString &value, + const signed long pos = 0) const; + + /** Get Bits Allocated + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBitsAllocated(Uint16 &value, + const signed long pos = 0) const; + + /** Get Bits Stored + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBitsStored(Uint16 &value, + const signed long pos = 0) const; + + /** Get High Bit + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getHighBit(Uint16 &value, + const signed long pos = 0) const; + + /** Get Presentation LUT Shape + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPresentationLUTShape(OFString &value, + const signed long pos = 0) const; + + /** Get Lossy Image Compression + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLossyImageCompression(OFString &value, + const signed long pos = 0) const; + + /** Get Lossy Image Compression Ratio + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLossyImageCompressionRatio(OFString &value, + const signed long pos = 0) const; + + /** Get Lossy Image Compression Method + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLossyImageCompressionMethod(OFString &value, + const signed long pos = 0) const; + + /** Get Burned In Annotation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBurnedInAnnotation(OFString &value, + const signed long pos = 0) const; + + /** Get Recognizable Visual Features + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRecognizableVisualFeatures(OFString &value, + const signed long pos = 0) const; + + /** Get Content Qualification + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getContentQualification(OFString &value, + const signed long pos = 0) const; + + /** Set Image Type + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (2-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setImageType(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Samples Per Pixel + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSamplesPerPixel(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set Photometric Interpretation + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPhotometricInterpretation(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Bits Allocated + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setBitsAllocated(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set Bits Stored + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setBitsStored(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set High Bit + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setHighBit(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set Presentation LUT Shape + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPresentationLUTShape(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Lossy Image Compression + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLossyImageCompression(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Lossy Image Compression Ratio + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLossyImageCompressionRatio(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Lossy Image Compression Method + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLossyImageCompressionMethod(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Burned In Annotation + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setBurnedInAnnotation(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Recognizable Visual Features + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRecognizableVisualFeatures(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set ContentQualification + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setContentQualification(const OFString &value, + const OFBool checkValue = OFTrue); + +private: + /// The name of this module ("DPMParametricMapImageModule") + static const OFString m_ModuleName; +}; + +#endif // DPMMODPARAMETRICMAPIMAGE_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h new file mode 100644 index 00000000..1c8b1b62 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h @@ -0,0 +1,133 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Series Module + * + */ + +#ifndef DPMMODPARAMETRICMAPSERIES_H +#define DPMMODPARAMETRICMAPSERIES_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofmem.h" +#include "dcmtk/dcmiod/iodrules.h" +#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmpmap/dpmdef.h" +#include "dcmtk/dcmiod/iodmacro.h" + +/** Class representing the Parametric Map Series Module: + * + * Modality: (CS, 1, 1) + * SeriesNumber: (IS, 1, 1) + * ReferencedPerformedProcedureStepSequence: (SQ, 1, 1C) + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapSeriesModule : public IODModule +{ +public: + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + DPMParametricMapSeriesModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + DPMParametricMapSeriesModule(); + + /** Destructor + */ + virtual ~DPMParametricMapSeriesModule(); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module ("DPMParametricMapSeriesModule") + * @return Name of the module ("DPMParametricMapSeriesModule") + */ + virtual OFString getName() const; + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Get Modality + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getModality(OFString &value, + const signed long pos = 0) const; + + /** Get Series Number + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSeriesNumber(OFString &value, + const signed long pos = 0) const; + + /** Get reference to the Referenced Performed Procedure Step Sequence + * @return a reference to the Referenced Performed Procedure Step Sequence + */ + virtual SOPInstanceReferenceMacro* getReferencedPerformedProcedureStepSequence(); + + /** Get a reference to the entire Referenced Performed Procedure Step Sequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire Referenced Performed Procedure Step Sequence + */ + virtual OFVector& getEntireReferencedPerformedProcedureStepSequence(); + + /** Set Modality + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setModality(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Series Number + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (IS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSeriesNumber(const OFString &value, + const OFBool checkValue = OFTrue); + +private: + /// The name of this module ("DPMParametricMapSeriesModule") + static const OFString m_ModuleName; + + /// ReferencedPerformedProcedureStepSequence + OFVector m_ReferencedPerformedProcedureStepSequence; +}; + +#endif // DPMMODPARAMETRICMAPSERIES_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h new file mode 100644 index 00000000..923d2d8d --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h @@ -0,0 +1,249 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Generated base class representing the Parametric Map IOD + * + */ + +#ifndef DPMPARAMETRICMAPBASE_H +#define DPMPARAMETRICMAPBASE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmfg/fginterface.h" +#include "dcmtk/dcmfg/fgderimg.h" +#include "dcmtk/dcmfg/fgfracon.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" +#include "dcmtk/dcmfg/fgframevoilut.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" +#include "dcmtk/dcmfg/fgpixmsr.h" +#include "dcmtk/dcmfg/fgplanor.h" +#include "dcmtk/dcmfg/fgplanpo.h" +#include "dcmtk/dcmfg/fgrealworldvaluemapping.h" +#include "dcmtk/dcmiod/iodimage.h" +#include "dcmtk/dcmiod/modacquisitioncontext.h" +#include "dcmtk/dcmiod/modcommoninstanceref.h" +#include "dcmtk/dcmiod/modenhequipment.h" +#include "dcmtk/dcmiod/modequipment.h" +#include "dcmtk/dcmiod/modgeneralimage.h" +#include "dcmtk/dcmiod/modgeneralseries.h" +#include "dcmtk/dcmiod/modgeneralstudy.h" +#include "dcmtk/dcmiod/modmultiframedimension.h" +#include "dcmtk/dcmiod/modmultiframefg.h" +#include "dcmtk/dcmiod/modpatient.h" +#include "dcmtk/dcmiod/modpatientstudy.h" +#include "dcmtk/dcmiod/modsopcommon.h" +#include "dcmtk/dcmiod/modimagepixel.h" +#include "dcmtk/dcmiod/modfloatingpointimagepixel.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h" +#include "dcmtk/dcmpmap/dpmdef.h" + +/** Class for managing the Parametric Map IOD attributes. Template parameter defines the type of pixel data + * to use: Unsigned or signed 16 bit integer, or 32 bit floating point, or 64 bit floating point data. + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapBase +: public DcmIODImage +< + IODImagePixelModule, + IODImagePixelModule, + IODFloatingPointImagePixelModule, + IODDoubleFloatingPointImagePixelModule +> +{ + +public: + + /** Virtual Destructor + */ + virtual ~DPMParametricMapBase(); + + // -------------------- loading and saving --------------------- + + /** Save current object to given filename + * @param filename The file to write to + * @param writeXfer The transfer syntax to be used + * @return EC_Normal if writing was successful, error otherwise. + */ + virtual OFCondition saveFile(const OFString& filename, + const E_TransferSyntax writeXfer = EXS_LittleEndianExplicit); + + /** Write current object to given item + * @param dataset The item to write to + * @return EC_Normal if writing was successful, error otherwise. + */ + OFCondition writeDataset(DcmItem& dataset); + + /** Perform some basic checking. This method is also invoked when + * writing the object to a DICOM dataset or file. + * @return OFTrue, if no errors were found, OFFalse otherwise. + */ + virtual OFBool check(); + + /** Get access to functional groups. This is meant for reading data from + * functional groups that are not actively managed, i.e.\ made accessible by + * DcmSegmentation. In rare cases, however, it makes sense to access it + * for writing too, e.g.\ in order to add Stacks; use with care! + * @return Reference to the functional groups + */ + virtual FGInterface& getFunctionalGroups(); + + /** Get Patient Module + * @return a reference to the IOD Patient Module + */ + virtual IODPatientModule& getIODPatientModule(); + + /** Get General Study Module + * @return a reference to the IOD General Study Module + */ + virtual IODGeneralStudyModule& getIODGeneralStudyModule(); + + /** Get Patient Study Module + * @return a reference to the IOD Patient Study Module + */ + virtual IODPatientStudyModule& getIODPatientStudyModule(); + + /** Get General Series Module + * @return a reference to the IOD General Series Module + */ + virtual IODGeneralSeriesModule& getIODGeneralSeriesModule(); + + /** Get Parametric Map Series Module + * @return a reference to the Parametric Map Series Module + */ + virtual DPMParametricMapSeriesModule& getDPMParametricMapSeriesModule(); + + /** Get General Equipment Module + * @return a reference to the General Equipment Module + */ + virtual IODGeneralEquipmentModule& getIODGeneralEquipmentModule(); + + /** Get Enhanced General Equipment Module + * @return a reference to the Enhanced General Equipment Module + */ + virtual IODEnhGeneralEquipmentModule& getIODEnhGeneralEquipmentModule(); + + /** Get General Image Module + * @return a reference to the General Image Module + */ + virtual IODGeneralImageModule& getIODGeneralImageModule(); + + /** Get Parametric Map Image Module + * @return a reference to the Parametric Map Image Module + */ + virtual DPMParametricMapImageModule& getDPMParametricMapImageModule(); + + /** Get Multi-frame Functional Groups Module + * @return a reference to the Multi-frame Functional Groups Module + */ + virtual IODMultiFrameFGModule& getIODMultiFrameFGModule(); + + /** Get Multi-frame Dimension Module + * @return a reference to the Multi-frame Dimension Module + */ + virtual IODMultiframeDimensionModule& getIODMultiframeDimensionModule(); + + /** Get Acquisition Context Module + * @return a reference to the Acquisition Context Module + */ + virtual IODAcquisitionContextModule& getIODAcquisitionContextModule(); + + /** Get Common Instance Reference Module + * @return a reference to the Common Instance Reference Module + */ + virtual IODCommonInstanceReferenceModule& getIODCommonInstanceReferenceModule(); + + /** Get SOP Common Module + * @return a reference to the SOP Common Module + */ + virtual IODSOPCommonModule& getIODSOPCommonModule(); + +protected: + + /** Constructor; not public since object should be create via factory + * method in derived class. + */ + DPMParametricMapBase(); + + /** Constructor; not public since object should be create via factory + * method in derived class. + */ + template + DPMParametricMapBase(OFin_place_type_t(ImagePixel)); + + /** Read Parametric Map attributes (all those handled by this class) + * from given item. Reads attributes from base class DcmIODCommon before. + * The current content is deleted even if the reading process fails. + * If the log stream is set and valid the reason for any error might be + * obtained from the error/warning output. + * @param dataset Reference to DICOM dataset from which the document + * should be read + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition read(DcmItem &dataset); + + /** Write current Parametric Map's attributes to DICOM dataset. Also + * writes attributes of base class DcmIODCommon afterwards. + * @param dataset Reference to DICOM dataset to which the current document + * should be written. The dataset is not cleared before writing + * to it! + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition write(DcmItem &dataset); + + /** Clear (removes) all attributes handled by the modules of this IOD. + * IOD Rules are not reset. + */ + virtual void clearData(); + + /** Loads file + * @param dcmff The file format to load into + * @param filename The filename of the file to load + * @param dset Pointer to dataset after loading + * @return EC_Normal if loading was successful, error otherwise + */ + static OFCondition loadFile(DcmFileFormat& dcmff, + const OFString& filename, + DcmDataset*& dset); + + /// Multi-frame Functional Groups high level interface + FGInterface m_FGInterface; + + /// Parametric Map Series Module + DPMParametricMapSeriesModule m_DPMParametricMapSeriesModule; + + /// Enhanced General Equipment Module + IODEnhGeneralEquipmentModule m_IODEnhGeneralEquipmentModule; + + /// Parametric Map Image Module + DPMParametricMapImageModule m_DPMParametricMapImageModule; + + /// Multi-frame Functional Groups Module + IODMultiFrameFGModule m_IODMultiFrameFGModule; + + /// Multi-frame Dimension Module + IODMultiframeDimensionModule m_IODMultiframeDimensionModule; + + /// Acquisition Context Module + IODAcquisitionContextModule m_IODAcquisitionContextModule; + + /// Common Instance Reference Module + IODCommonInstanceReferenceModule m_IODCommonInstanceReferenceModule; + +}; + +#endif // DPMPARAMETRICMAPBASE_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h new file mode 100644 index 00000000..e7741571 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h @@ -0,0 +1,306 @@ +/* + * + * Copyright (C) 2017, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class representing the Parametric Map IOD + * + */ + +#ifndef DPMPARAMETRICMAPIOD_H +#define DPMPARAMETRICMAPIOD_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmpmap/dpmparametricmapbase.h" +#include "dcmtk/dcmpmap/dpmtypes.h" + + +/** Class for managing the Parametric Map IOD attributes. + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapIOD : public DPMParametricMapBase +{ +public: + + /** Inner class that offers typed interface to bulk data. + */ + template + class DCMTK_DCMPMAP_EXPORT Frames + { + public: + + /// Binary pixel type + typedef PixelType pixel_type; + + /** Method that adds a frame to the Parametric Map using the underlying + * binary data type. + * @param data The frame data + * @param numPixels The number of pixels (rows * columns) of the frame + * @param perFrameInformation The per-frame functional groups applying for + * @return EC_Normal if adding was successful, error otherwise + */ + OFCondition addFrame(PixelType* data, + const size_t numPixels, + const OFVector& perFrameInformation); + + /** Type-specific getFrame() method that returns Float32, Uint16, or whatever + * is used in this Parametric Map. + * @param frameNumber The frame number to get, starting from 0 + * @return Pointer to typed pixel data + */ + PixelType* getFrame(const size_t frameNumber); + + private: + + // Make sure the Parametric Map object (and no one else) can use the constructor below. + friend class DPMParametricMapIOD; + + /** Create Frames object in DPMParametricMapIOD (see friend declaration above) + * @param map The map object that will contain the frames + */ + Frames(DPMParametricMapIOD& map); + + /// Reference to Parametric Map object in order to access its pixel data + DPMParametricMapIOD& m_Map; + }; + + /** Frames can contain Uint16, Sint16, Float32 or Float64 data, or nothing + * at all (in that case OFCondition denotes a corresponding error) + */ + typedef OFvariant + < + OFCondition, + Frames, + Frames, + Frames, + Frames + > FramesType; + + /** Virtual Destructor, frees memory. + */ + virtual ~DPMParametricMapIOD(); + + /** Create new Parametric Map object. Takes the minimum of required parameters. + * Afterwards, additional setters() can be used to set optional data. Frames + * and their related per-frame functional groups should be added using addFrame(). + * Shared functional groups should be added using addForAllFrames(). + * @param modality The modality of this Parametric Map (series level attribute). + * A list of Defined Terms can be found in the standard. Very often + * "MR" is the right choice. Only if a mix of different modalities has been + * use for creation "OT" should be used. + * @param seriesNumber A number identifying this series. If importPatientStudyFor() + * is called later in order to put this Parametric Map into an existing Series, + * the Series Number will be taken over from the existing series instead. + * @param instanceNumber A number identifying this image + * @param rows The number of rows of all frames of the Parametric Map + * @param columns The number of columns of all frames of the Parametric Map + * @param equipmentInfo Information about the equipment creating thing Parametric Map + * @param contentIdentification General information about this content + * @param imageFlavor 3rd value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param derivedPixelContrast 4th value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE + * @return Variant, either OFCondition with error code in case of error, Parametric + * Map object in case of success + */ + template + static OFvariant create(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const Uint16 rows, + const Uint16 columns, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification); + + /** Indicates whether or not the image contains sufficiently recognizable visual + * features to allow the image or a reconstruction from a set of images to + * identify the patient. + * @param yesOrNo Must be related "YES" or "NO" types + * @return EC_Normal if setting was successful, error otherwise + */ + + virtual OFCondition setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo); + + /** Add a functional group for all frames + * @param group The group to be added as shared functional group + * @return EC_Normal if adding was successful, error otherwise + */ + virtual OFCondition addForAllFrames(const FGBase& group); + + // -------------------- loading and saving --------------------- + + /** Load Parametric Map object from file + * @param filename The file to read from + * @return Variant, either the resulting Parametric Map object in case of success, + * an OFCondition error code otherwise + */ + static OFvariant loadFile(const OFString& filename); + + /** Load Parametric Map object from dataset object. + * @param dataset The dataset to read from + * @return Variant, either the resulting Parametric Map object in case of success, + * an OFCondition error code otherwise + */ + static OFvariant loadDataset(DcmDataset& dataset); + + /** Read Parametric Map attributes (all those handled by this class) + * from given item. Reads attributes from base class DcmIODCommon before. + * The current content is deleted even if the reading process fails. + * If the log stream is set and valid the reason for any error might be + * obtained from the error/warning output. + * @param dataset Reference to DICOM dataset from which the document + * should be read + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition read(DcmItem &dataset); + + /** Write current Parametric Map's attributes to DICOM dataset. + * @param dataset Reference to DICOM dataset to which the current document + * should be written. The dataset is not cleared before writing + * to it! + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition write(DcmItem &dataset); + + // -------------------- access --------------------- + + /** Get Recognizable Visual Features + * @return Returns related YES or NO data type + */ + virtual DPMTypes::RecognizableVisibleFeatures getRecognizableVisualFeatures(); + + /** Get Content Qualification + * @return Returns either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE or CQ_UNKNOWN + */ + virtual DPMTypes::ContentQualification getContentQualification(); + + /** Get number of rows + * @param rows The number of rows (output) + * @return EC_Normal if getting was successful, error otherwise + */ + virtual OFCondition getRows(Uint16& rows); + + /** Get number of cols + * @param cols The number of columns (output) + * @return EC_Normal if getting was successful, error otherwise + */ + virtual OFCondition getColumns(Uint16& cols); + + /** Perform some basic checking. This method is also invoked when + * writing the object to a DICOM dataset or file. + * @return OFTrue, if no errors were found, OFFalse otherwise. + */ + virtual OFBool check(); + + /** Get number of frames, based on the number of items in the shared + * functional functional groups sequence (i.e.\ the attribute Number of + * Frames) is not trusted after reading + * @return The number of frames handled by this object + */ + size_t getNumberOfFrames() const; + + /** Get access to frame data + * @return Class managing the frame data + */ + FramesType getFrames(); + +protected: + + /** Write current generic Parametric Map's attributes to DICOM dataset, i.e. + * those that are not directly pixel-related + * @param dataset Reference to DICOM dataset to which the current document + * should be written. The dataset is not cleared before writing + * to it. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeGeneric(DcmItem &dataset); + + /** Read Parametric Map's generic (not directly pixel-data related) attributes from + * DICOM dataset. + * @param dataset Reference to DICOM dataset to read from. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition readGeneric(DcmItem &dataset); + + /** Decompress the given dataset if required. Only RLE compression is accepted + * and decompressed by this tool. A warning is printed if the dataset has been compressed + * before with another compression scheme and is handed into this method in uncompressed + * format. Handing in any other compression but RLE will lead to an error. + * @param dset The dataset to be decompressed + * @return EC_Normal if decompression worked (or dataset is already in uncompressed format) + * IOD_EC_CannotDecompress otherwise + */ + static OFCondition decompress(DcmDataset& dset); + + /** Constructor + */ + DPMParametricMapIOD(); + + /** Constructor, anonymous parameter is the image pixel module to be used + */ + template + DPMParametricMapIOD(OFin_place_type_t(ImagePixel)); + +private: + + // Forward declarations + template class GetPixelDataVisitor; + struct SetImagePixelModuleVisitor; + struct WriteVisitor; + struct GetFramesVisitor; + struct ReadVisitor; + struct ReadFramesVisitor; + + /** Initialize new Parametric Map object except directly pixel-related data + * @param modality The modality of this Parametric Map (series level attribute). + * A list of Defined Terms can be found in the standard. Very often + * "MR" is the right choice. Only if a mix of different modalities has been + * use for creation "OT" should be used. + * @param seriesNumber A number identifying this series. If importPatientStudyFor() + * is called later in order to put this Parametric Map into an existing Series, + * the Series Number will be taken over from the existing series instead. + * @param instanceNumber A number identifying this image + * @param equipmentInfo Information about the equipment creating thing Parametric Map + * @param contentIdentification General information about this content + * @param imageFlavor 3rd value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param derivedPixelContrast 4th value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE + * @return EC_Normal in case of success, error otherwise + */ + OFCondition init(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification); + + + /// Parametric Map Image Module's Content Identification + ContentIdentificationMacro m_ContentIdentification; + + /// Binary frame data + OFVector m_Frames; + +}; + +#endif // DPMPARAMETRICMAPIOD_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h b/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h new file mode 100644 index 00000000..9bc952d3 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h @@ -0,0 +1,137 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class managing various parametric myps-typical types + * + */ + +#ifndef DPMTYPES_H +#define DPMTYPES_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/oflog/oflog.h" +#include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmpmap/dpmdef.h" + +// ---------------------------------------------------------------------------- +// Define the loggers for this module +// ---------------------------------------------------------------------------- + +extern DCMTK_DCMPMAP_EXPORT OFLogger DCM_dcmpmapLogger; + +#define DCMPMAP_TRACE(msg) OFLOG_TRACE(DCM_dcmpmapLogger, msg) +#define DCMPMAP_DEBUG(msg) OFLOG_DEBUG(DCM_dcmpmapLogger, msg) +#define DCMPMAP_INFO(msg) OFLOG_INFO(DCM_dcmpmapLogger, msg) +#define DCMPMAP_WARN(msg) OFLOG_WARN(DCM_dcmpmapLogger, msg) +#define DCMPMAP_ERROR(msg) OFLOG_ERROR(DCM_dcmpmapLogger, msg) +#define DCMPMAP_FATAL(msg) OFLOG_FATAL(DCM_dcmpmapLogger, msg) + +// ---------------------------------------------------------------------------- +// Error constants +// ---------------------------------------------------------------------------- + +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidDimensions; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidAttributeValue; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidPixelInfo; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidPixelData; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_NoPixelData; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidSOPClass; + +/** General purpose class hiding global functions, constants and types in the + * parametric map context from the global namespace. + */ +class DCMTK_DCMPMAP_EXPORT DPMTypes +{ + public: + + /// Enum for attribute Content Qualification + enum ContentQualification + { + /// Unkonwn (e.g. not set) + CQ_UNKNOWN, + /// PRODUCT + CQ_PRODUCT, + /// RESEARCH + CQ_RESEARCH, + /// SERVICE + CQ_SERVICE + }; + + /// Enum for attribute Lossy Image Compression + enum LossyImageCompression + { + /// Unknown (e.g. not set) + COMP_UNKNOWN, + /// YES (lossy image compression used) + COMP_YES, + /// NO (no lossy image compression used) + COMP_NO + }; + + + /// Enum for attribute Recognizable Visual Features + enum RecognizableVisibleFeatures + { + /// Unknown (e.g. not set) + RVF_UNKNOWN, + /// YES (recognizable visual features present) + RVF_YES, + /// NO (recognizable visual features not present) + RVF_NO + }; + + /** Convert Recognizable Visual Features enum to OFString + * @param rvf The enum to convert + * @return String version of enum value + */ + static OFString rvf2Str(const RecognizableVisibleFeatures rvf); + + /** Convert OFString version of Recognizable Visual Features attribute + * value to enum value + * @param rvf The OFString value to convert + * @return The enum value of the string + */ + static RecognizableVisibleFeatures str2Rvf(const OFString& rvf); + + /** Convert Content Qualification enum to OFString + * @param cq The enum to convert + * @return String version of enum value + */ + static OFString cq2Str(const ContentQualification cq); + + /** Convert OFString version of Content Qualification attribute + * value to enum value + * @param cq The OFString value to convert + * @return The enum value of the string + */ + static ContentQualification str2Cq(const OFString& cq); + + /** Check whether Recognizable Visual Features enum value is valid + * @param rvf Value to check + * @return OFTrue if valid, OFFalse otherwise + */ + static OFBool rvfValid(const RecognizableVisibleFeatures rvf); + + /** Check whether Content Qualification enum value is valid + * @param cq Value to check + * @return OFTrue if valid, OFFalse otherwise + */ + static OFBool cqValid(const ContentQualification cq); + +}; + +#endif // DPMTYPES_H diff --git a/dcmpmap/libsrc/CMakeLists.txt b/dcmpmap/libsrc/CMakeLists.txt new file mode 100644 index 00000000..40874634 --- /dev/null +++ b/dcmpmap/libsrc/CMakeLists.txt @@ -0,0 +1,4 @@ +# create library from source files +DCMTK_ADD_LIBRARY(dcmpmap dpmtypes dpmmodparametricmapseries dpmmodparametricmapimage dpmparametricmapbase dpmparametricmapiod) + +DCMTK_TARGET_LINK_MODULES(dcmpmap dcmfg dcmiod dcmdata ofstd oflog) diff --git a/dcmpmap/libsrc/Makefile.dep b/dcmpmap/libsrc/Makefile.dep new file mode 100644 index 00000000..a0c4bd7f --- /dev/null +++ b/dcmpmap/libsrc/Makefile.dep @@ -0,0 +1,673 @@ +dpmmodparametricmapimage.o: dpmmodparametricmapimage.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../include/dcmtk/dcmpmap/dpmdef.h +dpmmodparametricmapseries.o: dpmmodparametricmapseries.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +dpmparametricmapbase.o: dpmparametricmapbase.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmfg/include/dcmtk/dcmfg/fg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/cnvrsn.def \ + ../../ofstd/include/dcmtk/ofstd/diag/vsprfw.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def \ + ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ + ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfor.h \ + ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \ + ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ + ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \ + ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h +dpmparametricmapiod.o: dpmparametricmapiod.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmfg/include/dcmtk/dcmfg/fg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/cnvrsn.def \ + ../../ofstd/include/dcmtk/ofstd/diag/vsprfw.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def \ + ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ + ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfor.h \ + ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \ + ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \ + ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h +dpmtypes.o: dpmtypes.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/dcmpmap/dpmdef.h diff --git a/dcmpmap/libsrc/Makefile.in b/dcmpmap/libsrc/Makefile.in new file mode 100644 index 00000000..5f72f742 --- /dev/null +++ b/dcmpmap/libsrc/Makefile.in @@ -0,0 +1,56 @@ +# +# Makefile for dcmpmap/libsrc +# + +@SET_MAKE@ + +SHELL = /bin/sh +VPATH = @srcdir@:@top_srcdir@/include:@top_srcdir@/@configdir@/include +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + +ofstddir = $(top_srcdir)/../ofstd +oflogdir = $(top_srcdir)/../oflog +dcmdatadir = $(top_srcdir)/../dcmdata +dcmioddir = $(top_srcdir)/../dcmiod +dcmfgdir = $(top_srcdir)/../dcmfg + +LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include \ + -I$(dcmdatadir)/include -I$(dcmioddir)/include \ + -I$(dcmfgdir)/include + +LOCALDEFS = + +objs = dpmtypes.o dpmtypes.o dpmmodparametricmapseries.o dpmmodparametricmapimage.o dpmparametricmapbase.o dpmparametricmapiod.o + + +library = libdcmpmap.$(LIBEXT) + + +all: $(library) + +install: $(library) + $(configdir)/mkinstalldirs $(DESTDIR)$(libdir) + $(INSTALL_DATA) $(library) $(DESTDIR)$(libdir)/$(library) + $(RANLIB) $(DESTDIR)$(libdir)/$(library) + + +$(library): $(objs) + $(AR) $(ARFLAGS) $@ $(objs) + $(RANLIB) $@ + + +clean: + rm -f $(objs) $(library) $(TRASH) + +distclean: + rm -f $(objs) $(library) $(DISTTRASH) + + +dependencies: + $(CXX) -MM $(defines) $(includes) $(CPPFLAGS) $(CXXFLAGS) *.cc > $(DEP) + +include $(DEP) diff --git a/dcmpmap/libsrc/dpmmodparametricmapimage.cc b/dcmpmap/libsrc/dpmmodparametricmapimage.cc new file mode 100644 index 00000000..a22883aa --- /dev/null +++ b/dcmpmap/libsrc/dpmmodparametricmapimage.cc @@ -0,0 +1,289 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Image Module + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvrds.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h" + +const OFString DPMParametricMapImageModule::m_ModuleName = "DPMParametricMapImageModule"; + +DPMParametricMapImageModule::DPMParametricMapImageModule() +: IODModule() +{ + resetRules(); +} + +DPMParametricMapImageModule::DPMParametricMapImageModule(OFshared_ptr item, + OFshared_ptr rules) +: IODModule(item, rules) +{ + // reset element rules + resetRules(); +} + +DPMParametricMapImageModule::~DPMParametricMapImageModule() +{ + +} + +OFString DPMParametricMapImageModule::getName() const +{ + return m_ModuleName; +} + +void DPMParametricMapImageModule::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_ImageType, "2-n","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsStored, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_HighBit, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_PresentationLUTShape, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_LossyImageCompression, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_LossyImageCompressionRatio, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_LossyImageCompressionMethod, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_BurnedInAnnotation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_RecognizableVisualFeatures, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ContentQualification, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); +} + +OFCondition DPMParametricMapImageModule::read(DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + + return EC_Normal; +} + +OFCondition DPMParametricMapImageModule::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + result = IODComponent::write(destination); + + return result; +} + +OFCondition DPMParametricMapImageModule::getImageType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ImageType, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getSamplesPerPixel(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos); +} + +OFCondition DPMParametricMapImageModule::getPhotometricInterpretation(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getBitsAllocated(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos); +} + +OFCondition DPMParametricMapImageModule::getBitsStored(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_BitsStored, value, pos); +} + +OFCondition DPMParametricMapImageModule::getHighBit(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_HighBit, value, pos); +} + +OFCondition DPMParametricMapImageModule::getPresentationLUTShape(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_PresentationLUTShape, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getLossyImageCompression(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompression, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getLossyImageCompressionRatio(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionRatio, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getLossyImageCompressionMethod(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionMethod, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getBurnedInAnnotation(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_BurnedInAnnotation, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getRecognizableVisualFeatures(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_RecognizableVisualFeatures, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getContentQualification(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ContentQualification, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::setImageType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "2-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ImageType, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setSamplesPerPixel(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 1)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value); +} + +OFCondition DPMParametricMapImageModule::setPhotometricInterpretation(const OFString &value, + const OFBool checkValue) +{ + if (checkValue && (value != "MONOCHROME2")) + return IOD_EC_InvalidElementValue; + + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setBitsAllocated(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 16) && (value != 32) && (value != 64)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_BitsAllocated, value); +} + +OFCondition DPMParametricMapImageModule::setBitsStored(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 16) && (value != 32) && (value != 64)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_BitsStored, value); +} + +OFCondition DPMParametricMapImageModule::setHighBit(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 15)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_HighBit, value); +} + +OFCondition DPMParametricMapImageModule::setPresentationLUTShape(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_PresentationLUTShape, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setLossyImageCompression(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompression, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setLossyImageCompressionRatio(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionRatio, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setLossyImageCompressionMethod(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionMethod, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setBurnedInAnnotation(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_BurnedInAnnotation, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setRecognizableVisualFeatures(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_RecognizableVisualFeatures, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setContentQualification(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ContentQualification, value); + return result; +} diff --git a/dcmpmap/libsrc/dpmmodparametricmapseries.cc b/dcmpmap/libsrc/dpmmodparametricmapseries.cc new file mode 100644 index 00000000..cf65edc4 --- /dev/null +++ b/dcmpmap/libsrc/dpmmodparametricmapseries.cc @@ -0,0 +1,124 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Series Module + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvris.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h" + +const OFString DPMParametricMapSeriesModule::m_ModuleName = "DPMParametricMapSeriesModule"; + +DPMParametricMapSeriesModule::DPMParametricMapSeriesModule() +: IODModule() +{ + resetRules(); +} + +DPMParametricMapSeriesModule::DPMParametricMapSeriesModule(OFshared_ptr item, + OFshared_ptr rules) +: IODModule(item, rules) +{ + // reset element rules + resetRules(); +} + +DPMParametricMapSeriesModule::~DPMParametricMapSeriesModule() +{ + +} + +OFString DPMParametricMapSeriesModule::getName() const +{ + return m_ModuleName; +} + +void DPMParametricMapSeriesModule::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_Modality, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_SeriesNumber, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ReferencedPerformedProcedureStepSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); +} + +OFCondition DPMParametricMapSeriesModule::read(DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + DcmIODUtil::readSubSequence(source, DCM_ReferencedPerformedProcedureStepSequence, m_ReferencedPerformedProcedureStepSequence, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence)); + + return EC_Normal; +} + +OFCondition DPMParametricMapSeriesModule::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + if(SOPInstanceReferenceMacro* pReferencedPerformedProcedureStepSequence = getReferencedPerformedProcedureStepSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ReferencedPerformedProcedureStepSequence, *pReferencedPerformedProcedureStepSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence)); + result = IODComponent::write(destination); + + return result; +} + +OFCondition DPMParametricMapSeriesModule::getModality(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_Modality, *m_Item, value, pos); +} + +OFCondition DPMParametricMapSeriesModule::getSeriesNumber(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_SeriesNumber, *m_Item, value, pos); +} + +SOPInstanceReferenceMacro* DPMParametricMapSeriesModule::getReferencedPerformedProcedureStepSequence() +{ + return m_ReferencedPerformedProcedureStepSequence.empty() ? OFnullptr : &*m_ReferencedPerformedProcedureStepSequence.begin(); +} + +OFVector& DPMParametricMapSeriesModule::getEntireReferencedPerformedProcedureStepSequence() +{ + return m_ReferencedPerformedProcedureStepSequence; +} + +OFCondition DPMParametricMapSeriesModule::setModality(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_Modality, value); + return result; +} + +OFCondition DPMParametricMapSeriesModule::setSeriesNumber(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_SeriesNumber, value); + return result; +} diff --git a/dcmpmap/libsrc/dpmparametricmapbase.cc b/dcmpmap/libsrc/dpmparametricmapbase.cc new file mode 100644 index 00000000..a1dc1100 --- /dev/null +++ b/dcmpmap/libsrc/dpmparametricmapbase.cc @@ -0,0 +1,227 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Generated base class representing the Parametric Map IOD + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmtypes.h" +#include "dcmtk/dcmpmap/dpmparametricmapbase.h" + + +DPMParametricMapBase::DPMParametricMapBase() +: DPMParametricMapBase::IODImage() +, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +{ +} + + +template +DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(ImagePixel)) +: DPMParametricMapBase::IODImage(OFin_place) +, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +{ +} + + +DPMParametricMapBase::~DPMParametricMapBase() +{ +} + + +void DPMParametricMapBase::clearData() +{ + DPMParametricMapBase::IODImage::clearData(); +} + + +OFCondition DPMParametricMapBase::read(DcmItem& dataset) +{ + OFString sopClass; + if(DcmIODUtil::checkSOPClass(&dataset, UID_ParametricMapStorage, sopClass).bad()) + { + DCMPMAP_ERROR("Given file does not seem to be a Parametric Map storage object since SOP class is: " << sopClass); + return IOD_EC_WrongSOPClass; + } + + DPMParametricMapBase::IODImage::read(dataset); + m_DPMParametricMapSeriesModule.read(dataset); + m_IODEnhGeneralEquipmentModule.read(dataset); + m_DPMParametricMapImageModule.read(dataset); + m_IODMultiFrameFGModule.read(dataset); + m_FGInterface.read(dataset); + m_IODMultiframeDimensionModule.read(dataset); + m_IODAcquisitionContextModule.read(dataset); + m_IODCommonInstanceReferenceModule.read(dataset); + + return EC_Normal; +} + + +OFCondition DPMParametricMapBase::saveFile(const OFString& filename, + const E_TransferSyntax writeXfer) +{ + DcmFileFormat dcmff; + OFCondition result; + if((result = write(*dcmff.getDataset())).good()) + result = dcmff.saveFile(filename.c_str(), writeXfer); + if(result.bad()) + DCMPMAP_ERROR("Cannot save Parametric Map object to file " << filename << ": " << result.text()); + return result; +} + + +OFCondition DPMParametricMapBase::writeDataset(DcmItem& dataset) +{ + return write(dataset); +} + + +OFCondition DPMParametricMapBase::write(DcmItem& dataset) +{ + if(!check()) + return IOD_EC_InvalidObject; + + OFCondition result; + if((result = m_DPMParametricMapSeriesModule.write(dataset)).good()) + if((result = m_IODEnhGeneralEquipmentModule.write(dataset)).good()) + if((result = m_DPMParametricMapImageModule.write(dataset)).good()) + if((result = m_IODMultiFrameFGModule.write(dataset)).good()) + if((result = m_FGInterface.write(dataset)).good()) + if((result = m_IODMultiframeDimensionModule.write(dataset)).good()) + if((result = m_IODAcquisitionContextModule.write(dataset)).good()) + if((result = m_IODCommonInstanceReferenceModule.write(dataset)).good()) + return DPMParametricMapBase::IODImage::write(dataset); + + return result; +} + + +OFBool DPMParametricMapBase::check() +{ + return m_FGInterface.check(); +} + + +FGInterface& DPMParametricMapBase::getFunctionalGroups() +{ + return m_FGInterface; +} + + +IODPatientModule& DPMParametricMapBase::getIODPatientModule() +{ + return DPMParametricMapBase::IODImage::getPatient(); +} + + +IODGeneralStudyModule& DPMParametricMapBase::getIODGeneralStudyModule() +{ + return DPMParametricMapBase::IODImage::getStudy(); +} + + +IODPatientStudyModule& DPMParametricMapBase::getIODPatientStudyModule() +{ + return DPMParametricMapBase::IODImage::getPatientStudy(); +} + + +IODGeneralSeriesModule& DPMParametricMapBase::getIODGeneralSeriesModule() +{ + return DPMParametricMapBase::IODImage::getSeries(); +} + + +DPMParametricMapSeriesModule& DPMParametricMapBase::getDPMParametricMapSeriesModule() +{ + return m_DPMParametricMapSeriesModule; +} + + +IODGeneralEquipmentModule& DPMParametricMapBase::getIODGeneralEquipmentModule() +{ + return DPMParametricMapBase::IODImage::getEquipment(); +} + + +IODEnhGeneralEquipmentModule& DPMParametricMapBase::getIODEnhGeneralEquipmentModule() +{ + return m_IODEnhGeneralEquipmentModule; +} + + +IODGeneralImageModule& DPMParametricMapBase::getIODGeneralImageModule() +{ + return DPMParametricMapBase::IODImage::getGeneralImage(); +} + + +DPMParametricMapImageModule& DPMParametricMapBase::getDPMParametricMapImageModule() +{ + return m_DPMParametricMapImageModule; +} + + +IODMultiFrameFGModule& DPMParametricMapBase::getIODMultiFrameFGModule() +{ + return m_IODMultiFrameFGModule; +} + + +IODMultiframeDimensionModule& DPMParametricMapBase::getIODMultiframeDimensionModule() +{ + return m_IODMultiframeDimensionModule; +} + + +IODAcquisitionContextModule& DPMParametricMapBase::getIODAcquisitionContextModule() +{ + return m_IODAcquisitionContextModule; +} + + +IODCommonInstanceReferenceModule& DPMParametricMapBase::getIODCommonInstanceReferenceModule() +{ + return m_IODCommonInstanceReferenceModule; +} + + +IODSOPCommonModule& DPMParametricMapBase::getIODSOPCommonModule() +{ + return DPMParametricMapBase::IODImage::getSOPCommon(); +} + + +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule)); +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule)); +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODFloatingPointImagePixelModule)); +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODDoubleFloatingPointImagePixelModule)); diff --git a/dcmpmap/libsrc/dpmparametricmapiod.cc b/dcmpmap/libsrc/dpmparametricmapiod.cc new file mode 100644 index 00000000..fe4a368f --- /dev/null +++ b/dcmpmap/libsrc/dpmparametricmapiod.cc @@ -0,0 +1,1064 @@ +/* + * + * Copyright (C) 2016-2017, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class for managing the Parametric Map IOD + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmpmap/dpmparametricmapiod.h" +#include "dcmtk/dcmiod/iodutil.h" + +// ---------------------------------------------------------------------------- +// Class SetImagePixelModuleVisitor: +// Class for setting Image Pixel Module attributes based on pixel data type +// ---------------------------------------------------------------------------- + +struct DPMParametricMapIOD::SetImagePixelModuleVisitor +{ + SetImagePixelModuleVisitor(const Uint16 r, + const Uint16 c) + : rows(r) + , cols(c) + { + + } + + template + OFCondition operator()( T& t ) + { + if ( (rows == 0) || (cols == 0) ) + { + DCMPMAP_ERROR("Rows/Cols must be non-zero but are : " << rows << "/" << cols); + return DPM_InvalidDimensions; + } + + t.setRows(rows); + t.setColumns(cols); + setSpecificValues(t); + + return EC_Normal; + } + + template + void setSpecificValues(IODImagePixelModule& p) + { + p.setBitsAllocated(16); + p.setBitsStored(16); + p.setHighBit(15); + p.setSamplesPerPixel(1); + p.setPhotometricInterpretation("MONOCHROME2"); + p.setPixelRepresentation(OFis_signed::value ? 1 : 0); + } + + void setSpecificValues(IODFloatingPointImagePixelModule& p) + { + // Avoid compiler warning about unused parameter "p" + (void)p; + // No specific values for 32 bit floating point data to be set + } + + void setSpecificValues(IODDoubleFloatingPointImagePixelModule& p) + { + // Avoid compiler warning about unused parameter "p" + (void)p; + // No specific values for 64 bit floating point data to be set + } + // Members + const Uint16 rows; + const Uint16 cols; +}; + + +struct DPMParametricMapIOD::ReadVisitor +{ + // Inner class that implements the specializations for different + // pixel data types + template + class DcmElementOf; + + ReadVisitor(DcmItem& srcItem, + DPMParametricMapIOD& m) + : item(srcItem) + , map(m) + { + // Nothing to do + } + + OFCondition operator()(OFmonostate) + { + return DPM_InvalidPixelData; + } + + template + OFCondition operator()(ImagePixel& pixel) + { + OFCondition result = map.readGeneric(item); + if (result.good()) + { + Uint16 rows, cols, numFrames; + size_t numBytesFrame = 0; + rows = cols = numFrames = 0; + map.getRows(rows); + map.getColumns(cols); + numFrames = DcmIODUtil::limitMaxFrames(map.getFunctionalGroups().getNumberOfFrames(), + "Functional groups implicate more than 65535 frames, only 65535 will be used"); + if (!rows || !cols || !numFrames) + { + DCMPMAP_ERROR("Rows (" << rows << "), Columns (" << cols << ") and Number of Frames (" << numFrames << ") must not be 0"); + return DPM_InvalidPixelInfo; + } + numBytesFrame = rows * cols * sizeof(typename ImagePixel::value_type); + result = readSpecific(pixel, numFrames, numBytesFrame); + } + return result; + } + + template + OFCondition readSpecific(IODImagePixelModule& p, + const Uint16 numFrames, + const size_t numBytesFrame) + { + // Avoid compiler warning about unused parameter + (void)p; + unsigned long numTotalWords = 0; + const Uint16* pixData = NULL; + if (item.findAndGetUint16Array(DCM_PixelData, pixData, &numTotalWords).good()) + { + if (numTotalWords == numBytesFrame * numFrames / 2 /* we compare to num words not num bytes */) + { + for (Uint16 n = 0; n < numFrames; n++) + { + DcmIODTypes::Frame* f = new DcmIODTypes::Frame; + if (f) + { + f->length = numBytesFrame; + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, pixData + n*numBytesFrame/2, numBytesFrame); + map.m_Frames.push_back(f); + } + else + { + return EC_MemoryExhausted; + } + } + } + else + { + DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 2 << " pixels but Pixel Data has " << numTotalWords << " pixels"); + return DPM_InvalidPixelInfo; + } + } + else + { + DCMPMAP_ERROR("No Pixel Data element found"); + return DPM_NoPixelData; + } + return EC_Normal; + } + + OFCondition readSpecific(IODFloatingPointImagePixelModule& p, + const Uint16 numFrames, + const size_t numBytesFrame) + { + // Avoid compiler warning on unused parameter + (void)p; + unsigned long numTotalFloats = 0; + const Float32* pixData = NULL; + if (item.findAndGetFloat32Array(DCM_FloatPixelData, pixData, &numTotalFloats).good()) + { + if (numTotalFloats == numBytesFrame * numFrames / 4 /* we compare to 32 bit floats not bytes */) + { + for (Uint16 n=0; n < numFrames; n++) + { + DcmIODTypes::Frame* f = new DcmIODTypes::Frame; + if (f) + { + f->length = numBytesFrame; + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, pixData + n*numBytesFrame/4, numBytesFrame); + map.m_Frames.push_back(f); + } + else + { + return EC_MemoryExhausted; + } + } + } + else + { + DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 4 << " pixels but Float Pixel Data has " << numTotalFloats << " pixels"); + return DPM_InvalidPixelInfo; + } + } + else + { + DCMPMAP_ERROR("No Float Pixel Data element found"); + return DPM_NoPixelData; + } + return EC_Normal; + } + + OFCondition readSpecific(IODDoubleFloatingPointImagePixelModule& p, + const Uint16 numFrames, + const size_t numBytesFrame) + { + // Avoid compiler warning on unused parameter + (void)p; + unsigned long numTotalFloats = 0; + const Float64* pixData = NULL; + if (item.findAndGetFloat64Array(DCM_DoubleFloatPixelData, pixData, &numTotalFloats).good()) + { + if (numTotalFloats == numBytesFrame * numFrames / 8 /* we compare to 64 bit floats not bytes */) + { + for (Uint16 n=0; n < numFrames; n++) + { + DcmIODTypes::Frame* f = new DcmIODTypes::Frame; + if (f) + { + f->length = numBytesFrame; + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, pixData + n*numBytesFrame/8, numBytesFrame); + map.m_Frames.push_back(f); + } + else + { + return EC_MemoryExhausted; + } + } + } + else + { + DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 8 << " pixels but Double Float Pixel Data has " << numTotalFloats << " pixels"); + return DPM_InvalidPixelInfo; + } + } + else + { + DCMPMAP_ERROR("No Double Float Pixel Data element found"); + return DPM_NoPixelData; + } + return EC_Normal; + } + + // Members, i.e. parameters to operator() + DcmItem& item; + DPMParametricMapIOD& map; +}; + + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor: +// Class for adding DICOM pixel data bulk element based on type pixel data type +// ---------------------------------------------------------------------------- + +// Generic implementation, template specialization is done in inner +// DcmElementOf class +struct DPMParametricMapIOD::WriteVisitor +{ + // Inner class that implements the specializations for different + // pixel data types + template + class DcmElementOf; + + // Constructor, sets parameters the visitor works on in operator() + WriteVisitor(DcmItem& i, + DPMParametricMapIOD& m) + : item(i) + , map(m) + { + // Nothing else to do + } + + // + OFCondition operator()(OFmonostate) + { + DCMPMAP_ERROR("Could not write pixel data: Invalid pixel data type, only 16 bit integer as well as 32 and 64 bit float data are handled"); + return DPM_NoPixelData; + } + + template + OFCondition operator()(ImagePixel& pixel) + { + // Avoid compiler warning about unused parameter "pixel" + (void)pixel; + // Input data is checked before + Uint16 rows = 0; + Uint16 cols = 0; + map.getRows(rows); + map.getColumns(cols); + const size_t numFrames = map.m_Frames.size(); + const size_t numBytesFrame = map.m_Frames[0]->length; + const size_t numPixelsFrame = rows * cols; + // Creates the correct pixel data element, based on the image pixel module used. + // I.e. For integer data, the "Pixel Data" element is used, i.e. the DcmElement type + // instantiated by DcmElementOf is of DCMTK type DcmOtherByteOtherWord while for + // IODFloatingPointImagePixelModule which has floating point pixel data, DcmFloatingPointSingle + // is used. + DcmElementOf element; + // copy all frames into map's frame structure + if (OFTypename ImagePixel::value_type* ptr = element.getData(numBytesFrame * numFrames)) + { + for (size_t f = 0; f < numFrames; ++f) + { + memcpy(ptr, map.m_Frames[f]->pixData, numBytesFrame); + ptr += numPixelsFrame; + } + OFCondition result = element.put(item); + // Write generic (i.e. non pixel data-specific attributes) + return result.good() ? map.writeGeneric(item) : result; + } + return EC_MemoryExhausted; + } + + // Members, i.e. parameters to operator() + DcmItem& item; + DPMParametricMapIOD& map; +}; + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor:DcmElementOf >: +// Offers creation and insertion for Pixel Data element as used for +// int-based pixel data. So far, Uint8, Sint8, Uint16 and Sint16 pixel +// data is supported (relates to OB/OW data type for DICOM Pixel data) +// ---------------------------------------------------------------------------- + +template +class DPMParametricMapIOD::WriteVisitor::DcmElementOf > +{ +public: + + DcmElementOf() + : m_pElement(new DcmOtherByteOtherWord(DCM_PixelData)) + { + // Nothing else to do + } + + PixelType* getData(const size_t count); + + OFCondition put(DcmItem& itemPara) + { + OFCondition result = itemPara.insert(m_pElement.get(), OFTrue); + if (result.good()) + m_pElement.release(); + return result; + } + +private: + + OFunique_ptr m_pElement; +}; + + +template<> +Uint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OB).good()) + { + Uint8* result; + if (m_pElement->createUint8Array(size, result).good()) + return result; + } + return OFnullptr; +} + + +template<> +Sint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OB).good()) + { + Uint8* result; + if (m_pElement->createUint8Array(size, result).good()) + return OFreinterpret_cast(Sint8*, result); + } + return OFnullptr; +} + + +template<> +Uint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size /* num total pixels */) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OW).good()) + { + Uint16* result; + if (m_pElement->createUint16Array(size / 2, result).good()) + return result; + } + return OFnullptr; +} + + +template<> +Sint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OW).good()) + { + Uint16* result; + if (m_pElement->createUint16Array(size / 2, result).good()) + return OFreinterpret_cast(Sint16*, result); + } + return OFnullptr; +} + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor:DcmElementOf >: +// Offers creation and insertion for Pixel Data element as used for +// 32 bit float-based pixel data as used in Parametric Map IOD +// ---------------------------------------------------------------------------- + +template<> +class DPMParametricMapIOD::WriteVisitor::DcmElementOf +{ +public: + DcmElementOf() + : m_pElement(new DcmFloatingPointSingleAlloc(DCM_FloatPixelData)) + { + + } + + Float32* getData(const size_t size) + { + if (m_pElement) + { + Float32* result; + if (m_pElement->createFloat32Array(size, result).good()) + return result; + } + return OFnullptr; + } + + OFCondition put(DcmItem& itemPara) + { + OFCondition result = itemPara.insert(m_pElement.get(), OFTrue); + if (result.good()) + m_pElement.release(); + return result; + } + +private: + + struct DcmFloatingPointSingleAlloc : DcmFloatingPointSingle + { + DcmFloatingPointSingleAlloc(const DcmTagKey& tag) + : DcmFloatingPointSingle(tag) + { + + } + + OFCondition createFloat32Array(const size_t size, + Float32*& result) + { + OFCondition status = createEmptyValue(size); + result = OFreinterpret_cast(Float32*, getValue()); + return status; + } + }; + + OFunique_ptr m_pElement; +}; + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor:DcmElementOf >: +// Offers creation and insertion for Pixel Data element as used for +// 64 bit float-based pixel data as used in Parametric Map IOD. +// ---------------------------------------------------------------------------- + +template<> +class DPMParametricMapIOD::WriteVisitor::DcmElementOf +{ +public: + DcmElementOf() + : m_pElement(new DcmFloatingPointDoubleAlloc(DCM_DoubleFloatPixelData)) + { + + } + + Float64* getData(const size_t size) + { + if (m_pElement) + { + Float64* result; + if (m_pElement->createFloat64Array(size, result).good()) + return result; + } + return OFnullptr; + } + + OFCondition put(DcmItem& itemPara) + { + OFCondition result = itemPara.insert(m_pElement.get(), OFTrue); + if (result.good()) + m_pElement.release(); + return result; + } + +private: + + struct DcmFloatingPointDoubleAlloc : DcmFloatingPointDouble + { + DcmFloatingPointDoubleAlloc(const DcmTagKey& tag) + : DcmFloatingPointDouble(tag) + { + + } + + OFCondition createFloat64Array(const size_t size, Float64*& result) + { + OFCondition status = createEmptyValue(size); + result = OFreinterpret_cast(Float64*, getValue()); + return status; + } + }; + + OFunique_ptr m_pElement; +}; + + +// Helper "class" that returns Frames offering API to the pixel's frame bulk +// data by offering the dedicated data type, e.g. Float32 instead of the +// internally stored generic Uint8 array. +// +struct DPMParametricMapIOD::GetFramesVisitor +{ + GetFramesVisitor(DPMParametricMapIOD& m) + : map(m) + { + + } + + OFCondition operator()(OFmonostate) + { + return DPM_InvalidPixelData; + } + + template + Frames operator()(ImagePixel&) + { + return Frames(map); + } + + DPMParametricMapIOD& map; +}; + + +/** Helper "class" that returns Frames offering API to the pixel's frame bulk + * data by offering the dedicated data type, e.g. Float32 instead of the + * internally stored generic Uint8 array. + */ +struct DPMParametricMapIOD::ReadFramesVisitor +{ + ReadFramesVisitor(DcmItem& i, + DPMParametricMapIOD& m) + : map(m), item(i) + { + // Nothing else to do + } + + OFCondition operator()(OFmonostate) + { + return DPM_InvalidPixelData; + } + + template + OFCondition operator()(ImagePixel&) + { + return Frames(map); + } + + // Members, i.e. parameters to operator() + DPMParametricMapIOD& map; + DcmItem& item; +}; + + + +template +DPMParametricMapIOD::Frames::Frames(DPMParametricMapIOD& map) +: m_Map(map) +{ + +} + + +template +OFCondition DPMParametricMapIOD::Frames::addFrame(PixelType* data, + const size_t numPixels, + const OFVector& perFrameInformation) +{ + OFCondition result; + if (data && numPixels) + { + if (!perFrameInformation.empty()) + { + OFunique_ptr f(new DcmIODTypes::Frame); + if (f) + { + f->length = numPixels * sizeof(PixelType); + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, data, f->length); + m_Map.m_Frames.push_back(f.release()); + OFVector::const_iterator fg = perFrameInformation.begin(); + while ( result.good() && (fg != perFrameInformation.end()) ) + { + result = m_Map.m_FGInterface.addPerFrame(m_Map.m_Frames.size(), **fg); + if (result.bad()) + { + DCMPMAP_ERROR("Could not add functional group: " << DcmFGTypes::FGType2OFString((*fg)->getType())); + break; + } + ++fg; + } + } + } + } + // Clean up if necessary + if (result.bad()) + m_Map.m_FGInterface.deleteFrame(m_Map.m_Frames.size()); + return result; +} + + +template +PixelType* DPMParametricMapIOD::Frames::getFrame(const size_t frameNumber) +{ + if (frameNumber < m_Map.m_Frames.size()) + { + return (PixelType*)(m_Map.m_Frames[frameNumber]->pixData); + } + return NULL; +} + + +// Protected constructor +DPMParametricMapIOD::DPMParametricMapIOD() +: DPMParametricMapBase() +, m_ContentIdentification() +, m_Frames() +{ +} + + +// Protected constructor +template +DPMParametricMapIOD::DPMParametricMapIOD(OFin_place_type_t(ImagePixel)) +: DPMParametricMapBase(OFin_place) +, m_ContentIdentification() +, m_Frames() +{ +} + + +// Static method used to create a new Parametric Map IOD object +template +OFvariant DPMParametricMapIOD::create(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const Uint16 rows, + const Uint16 columns, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification) +{ + DPMParametricMapIOD map(OFin_place); + + OFCondition status = SetImagePixelModuleVisitor(rows, columns)(*OFget(&map.getImagePixel())); + if (status.bad()) + return status; + + status = map.init + ( + modality, + seriesNumber, + instanceNumber, + equipmentInfo, + contentIdentification, + imageFlavor, + derivedPixelContrast, + contentQualification + ); + + if(status.bad()) + return status; + + return map; +} + + +OFCondition DPMParametricMapIOD::init(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification) +{ + if (!equipmentInfo.isDataComplete()) + { + DCMPMAP_ERROR("Equipment info incomplete"); + return DPM_InvalidAttributeValue; + } + + OFCondition status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check(); + if (status.bad()) + { + DCMPMAP_ERROR("Content identification is invalid: " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check(); + if (imageFlavor.empty() || derivedPixelContrast.empty()) + { + DCMPMAP_ERROR + ( + "Image Type value 3 (Image Flavor) and 4 (Derived Pixel Contrast) must be set but are " + << imageFlavor << "/" << derivedPixelContrast + ); + return DPM_InvalidAttributeValue; + } + + if (!DPMTypes::cqValid(contentQualification)) + { + DCMPMAP_ERROR("Content Qualification not set"); + return DPM_InvalidAttributeValue; + } + + // All data is valid, copy to object + status = getIODEnhGeneralEquipmentModule().set(equipmentInfo); + if (status.bad()) + { + DCMPMAP_ERROR("Error setting equipment info: " << status.text()); + return DPM_InvalidAttributeValue; + } + + m_ContentIdentification = contentIdentification; + OFStringStream ss; + ss << "DERIVED\\PRIMARY\\" << imageFlavor << "\\" << derivedPixelContrast; + OFSTRINGSTREAM_GETOFSTRING(ss, imgType); + + status = getIODGeneralImageModule().setImageType(imgType); + if (status.bad()) + { + DCMPMAP_ERROR("Error setting Image Type: " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = m_DPMParametricMapSeriesModule.setModality(modality); + if (status.bad()) + { + + DCMPMAP_ERROR("Could not set modality value \"" << modality << "\": " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = m_DPMParametricMapSeriesModule.setSeriesNumber(seriesNumber); + if (status.bad()) + { + DCMPMAP_ERROR("Could not set Series Number: " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = m_IODMultiFrameFGModule.setInstanceNumber(instanceNumber); + if (status.bad()) + return status; + + m_DPMParametricMapImageModule.setContentQualification(DPMTypes::cq2Str(contentQualification)); + m_DPMParametricMapImageModule.setRecognizableVisualFeatures("YES"); + m_DPMParametricMapImageModule.setBurnedInAnnotation("NO"); + m_DPMParametricMapImageModule.setLossyImageCompression("00"); + m_DPMParametricMapImageModule.setPresentationLUTShape("IDENTITY"); + getSOPCommon().setSOPClassUID(UID_ParametricMapStorage); + DcmIODUtil::setContentDateAndTimeNow(m_IODMultiFrameFGModule); + + return EC_Normal; +} + + +OFCondition DPMParametricMapIOD::read(DcmItem& dataset) +{ + return OFvisit(ReadVisitor(dataset,*this),getImagePixel()); + +} + + +OFCondition DPMParametricMapIOD::write(DcmItem& dataset) +{ + if (!check()) + return DPM_InvalidAttributeValue; + return OFvisit(WriteVisitor(dataset,*this),getImagePixel()); +} + + +OFvariant DPMParametricMapIOD::loadDataset(DcmDataset& dataset) +{ + OFString sopClass; + DPMParametricMapIOD *map = NULL; + if (dataset.findAndGetOFStringArray(DCM_SOPClassUID, sopClass).good()) + { + if (sopClass == UID_ParametricMapStorage) + { + DcmElement *elem = NULL; + if (dataset.findAndGetElement(DCM_PixelData, elem).good()) + { + Uint16 pr = 0; + if (dataset.findAndGetUint16(DCM_PixelRepresentation, pr).good()) + { + if (pr == 0) + { + map = new DPMParametricMapIOD(OFin_place >); + } + else + { + map = new DPMParametricMapIOD(OFin_place >); + } + } + else + { + DCMPMAP_WARN("Pixel Data element found but no Pixel Representation set, assuming 16 bit unsigned integer data"); + map = new DPMParametricMapIOD(OFin_place >); + } + } + else if (dataset.findAndGetElement(DCM_FloatPixelData, elem).good()) + { + map = new DPMParametricMapIOD(OFin_place); + } + else if (dataset.findAndGetElement(DCM_DoubleFloatPixelData, elem).good()) + { + map = new DPMParametricMapIOD(OFin_place); + } + else + { + return DPM_NoPixelData; + } + if (map == NULL) + { + return EC_MemoryExhausted; + } + } + else + { + DCMPMAP_ERROR("Invalid SOP Class: " << sopClass << ", only Parametric Map Storage (1.2.840.10008.5.1.4.1.1.30) supported"); + return DPM_InvalidSOPClass; + } + } + OFCondition result = OFvisit(ReadVisitor(dataset, *map), map->getImagePixel()); + if (result.good()) + return map; + else + return result; +} + + +OFvariant DPMParametricMapIOD::loadFile(const OFString& filename) +{ + DcmFileFormat dcmff; + OFCondition cond = dcmff.loadFile(filename.c_str()); + OFvariant result; + if (cond.good()) + { + result = loadDataset( *(dcmff.getDataset()) ); + return result; + } + else + { + return cond; + } +} + + +DPMParametricMapIOD::~DPMParametricMapIOD() +{ + DcmIODUtil::freeContainer(m_Frames); + // nothing else to do for now +} + + +OFCondition DPMParametricMapIOD::addForAllFrames(const FGBase& group) +{ + return m_FGInterface.addShared(group); +} + + +OFBool DPMParametricMapIOD::check() +{ + OFString val; + m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val); + if (DPMTypes::rvfValid(DPMTypes::str2Rvf(val))) + { + m_DPMParametricMapImageModule.getContentQualification(val); + if (DPMTypes::cqValid(DPMTypes::str2Cq(val))) + { + if (!m_Frames.empty()) + { + return OFTrue; + } + else + { + DCMPMAP_ERROR("No frame data defined in Parametric Map"); + } + } + else + { + DCMPMAP_ERROR("Invalid value for Recognizable Visual Features: " << val); + } + } + else + { + DCMPMAP_ERROR("Invalid value for Content Qualification" << val); + } + return OFFalse; +} + + +OFCondition DPMParametricMapIOD::getColumns(Uint16& cols) +{ + return getImagePixel().getColumns(cols); +} + + +OFCondition DPMParametricMapIOD::getRows(Uint16& rows) +{ + return getImagePixel().getRows(rows); +} + + +size_t DPMParametricMapIOD::getNumberOfFrames() const +{ + return OFconst_cast(DPMParametricMapIOD*,this)->m_FGInterface.getNumberOfFrames(); +} + + +OFCondition DPMParametricMapIOD::setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo) +{ + return DPMTypes::rvfValid(yesOrNo) + ? + m_DPMParametricMapImageModule.setRecognizableVisualFeatures(DPMTypes::rvf2Str(yesOrNo)) + : + DPM_InvalidAttributeValue + ; +} + + +OFCondition DPMParametricMapIOD::readGeneric(DcmItem& dataset) +{ + OFCondition result = DPMParametricMapBase::read(dataset); + if (result.good()) + result = m_ContentIdentification.read(dataset); + return result; +} + + +OFCondition DPMParametricMapIOD::writeGeneric(DcmItem& dataset) +{ + getFrameOfReference().ensureFrameOfReferenceUID(); + m_IODMultiFrameFGModule.setNumberOfFrames(DcmIODUtil::limitMaxFrames(m_Frames.size(), "Maximum number of frames exceeded, will write 65535")); + OFCondition result = m_ContentIdentification.write(dataset); + if (result.good()) + { + result = DPMParametricMapBase::write(dataset); + } + return result; +} + + +DPMTypes::ContentQualification DPMParametricMapIOD::getContentQualification() +{ + OFString val; + m_DPMParametricMapImageModule.getContentQualification(val); + return DPMTypes::str2Cq(val); +} + + +DPMTypes::RecognizableVisibleFeatures DPMParametricMapIOD::getRecognizableVisualFeatures() +{ + OFString val; + DPMParametricMapIOD::m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val); + return DPMTypes::str2Rvf(val); +} + + +DPMParametricMapIOD::FramesType DPMParametricMapIOD::getFrames() +{ + return OFvisit(GetFramesVisitor(*this),getImagePixel()); +} + + +OFCondition DPMParametricMapIOD::decompress(DcmDataset& dset) +{ + DcmXfer xfer = dset.getOriginalXfer(); + OFCondition result; + // If the original transfer syntax could have been lossy, print warning + if (dset.hasRepresentation(EXS_LittleEndianExplicit, NULL)) + { + if ( xfer.isEncapsulated() && (xfer.getXfer() != EXS_RLELossless) && (xfer.getXfer() != EXS_DeflatedLittleEndianExplicit) ) + { + DCMPMAP_WARN("Dataset has been compressed using a (possibly) lossy compression scheme (ignored)"); + } + } + // If the original transfer is encapsulated and we do not already have an uncompressed version, decompress or reject the file + else if (xfer.isEncapsulated()) + { + // RLE compression is fine (truly lossless). Deflated is handled internally by DCMTK. + if (xfer.getXfer() == EXS_RLELossless) + { + DCMPMAP_DEBUG("DICOM file is RLE-compressed, converting to uncompressed transfer syntax first"); + result = DcmIODUtil::decompress(dset); + } + else // We do not accept any transfer syntax that could be lossy compressed + { + DCMPMAP_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Parametric Map objects!"); + result = IOD_EC_CannotDecompress; + } + } + return result; +} + +// Explicit instantiations using all permitted Parametric Map data types +template class DPMParametricMapIOD::Frames; +template class DPMParametricMapIOD::Frames; +template class DPMParametricMapIOD::Frames; +template class DPMParametricMapIOD::Frames; + +// Helper macro to not to write the same thing multiple times +#define INSTANTIATE_CREATE(T) template DCMTK_DCMPMAP_EXPORT OFvariant\ +DPMParametricMapIOD::create(const OFString& modality,\ + const OFString& seriesNumber,\ + const OFString& instanceNumber,\ + const Uint16 rows,\ + const Uint16 columns,\ + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,\ + const ContentIdentificationMacro& contentIdentification,\ + const OFString& imageFlavor,\ + const OFString& derivedPixelContrast,\ + const DPMTypes::ContentQualification& contentQualification) + +// Instantiate all four permitted create() methods +INSTANTIATE_CREATE(IODImagePixelModule); +INSTANTIATE_CREATE(IODImagePixelModule); +INSTANTIATE_CREATE(IODFloatingPointImagePixelModule); +INSTANTIATE_CREATE(IODDoubleFloatingPointImagePixelModule); diff --git a/dcmpmap/libsrc/dpmtypes.cc b/dcmpmap/libsrc/dpmtypes.cc new file mode 100644 index 00000000..cce411c9 --- /dev/null +++ b/dcmpmap/libsrc/dpmtypes.cc @@ -0,0 +1,111 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class for managing common paramatric map specific types. + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcerror.h" +#include "dcmtk/dcmpmap/dpmtypes.h" + +OFLogger DCM_dcmpmapLogger = OFLog::getLogger("dcmtk.dcmpmap"); + +/*---------------------------------* + * constant definitions + *---------------------------------*/ + +// conditions +makeOFConditionConst(DPM_InvalidDimensions, OFM_dcmpmap, 1, OF_error, "Invalid Dimensions"); +makeOFConditionConst(DPM_InvalidAttributeValue, OFM_dcmpmap, 2, OF_error, "Invalid Attribute Value"); +makeOFConditionConst(DPM_InvalidPixelInfo, OFM_dcmpmap, 3, OF_error, "Invalid information in pixel data or related attributes"); +makeOFConditionConst(DPM_InvalidPixelData, OFM_dcmpmap, 4, OF_error, "Invalid pixel data"); +makeOFConditionConst(DPM_NoPixelData, OFM_dcmpmap, 5, OF_error, "No pixel data found"); +makeOFConditionConst(DPM_InvalidSOPClass, OFM_dcmpmap, 6, OF_error, "SOP Class not supported"); + +OFString DPMTypes::rvf2Str(const RecognizableVisibleFeatures rvf) +{ + switch (rvf) + { + case RVF_NO: return "NO"; + case RVF_YES: return "YES"; + default: return ""; + } +} + +DPMTypes::RecognizableVisibleFeatures DPMTypes::str2Rvf(const OFString& rvf) +{ + if (rvf == "NO") + return RVF_NO; + if (rvf == "YES") + return RVF_YES; + else + return RVF_UNKNOWN; +} + + +OFString DPMTypes::cq2Str(const DPMTypes::ContentQualification cq) +{ + switch (cq) + { + case CQ_PRODUCT: return "PRODUCT"; + case CQ_RESEARCH: return "RESEARCH"; + case CQ_SERVICE: return "SERVICE"; + case CQ_UNKNOWN: return ""; + } + return ""; +} + + +DPMTypes::ContentQualification DPMTypes::str2Cq(const OFString& cq) +{ + if (cq == "PRODUCT") + return CQ_PRODUCT; + if (cq == "RESEARCH") + return CQ_RESEARCH; + if (cq == "SERVICE") + return CQ_SERVICE; + else + return CQ_UNKNOWN; +} + + + +OFBool DPMTypes::cqValid(const DPMTypes::ContentQualification cq) +{ + switch (cq) + { + case CQ_PRODUCT: + case CQ_RESEARCH: + case CQ_SERVICE: return OFTrue; + case CQ_UNKNOWN: return OFFalse; + } + return OFFalse; +} + + +OFBool DPMTypes::rvfValid(const DPMTypes::RecognizableVisibleFeatures rvf) +{ + switch (rvf) + { + case RVF_NO: return OFTrue; + case RVF_YES: return OFTrue; + case RVF_UNKNOWN: return OFFalse; + } + return OFFalse; +} + diff --git a/dcmpmap/tests/Makefile.in b/dcmpmap/tests/Makefile.in new file mode 100644 index 00000000..ff99234b --- /dev/null +++ b/dcmpmap/tests/Makefile.in @@ -0,0 +1,29 @@ +# +# Makefile for dcmpmap/tests +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +check: + +check-exhaustive: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) + +dependencies: diff --git a/dcmpstat/apps/Makefile.dep b/dcmpstat/apps/Makefile.dep index c76e1031..14c170de 100644 --- a/dcmpstat/apps/Makefile.dep +++ b/dcmpstat/apps/Makefile.dep @@ -352,11 +352,16 @@ dcmp2pgm.o: dcmp2pgm.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmpstat/dvpsdal.h ../include/dcmtk/dcmpstat/dvpssvl.h \ ../include/dcmtk/dcmpstat/dvpspl.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ ../../dcmnet/include/dcmtk/dcmnet/dndefine.h \ ../../dcmnet/include/dcmtk/dcmnet/dcompat.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/qrdefine.h \ @@ -510,11 +515,16 @@ dcmprscp.o: dcmprscp.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmpstat/dvpsdal.h ../include/dcmtk/dcmpstat/dvpssvl.h \ ../include/dcmtk/dcmpstat/dvpspl.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ ../../dcmnet/include/dcmtk/dcmnet/dndefine.h \ ../../dcmnet/include/dcmtk/dcmnet/dcompat.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/qrdefine.h \ @@ -664,8 +674,13 @@ dcmprscu.o: dcmprscu.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmpstat/dvpsdal.h ../include/dcmtk/dcmpstat/dvpssvl.h \ ../include/dcmtk/dcmpstat/dvpspl.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/qrdefine.h \ @@ -1082,11 +1097,16 @@ dcmpsprt.o: dcmpsprt.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmpstat/dvpsdal.h ../include/dcmtk/dcmpstat/dvpssvl.h \ ../include/dcmtk/dcmpstat/dvpspl.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ ../../dcmnet/include/dcmtk/dcmnet/dndefine.h \ ../../dcmnet/include/dcmtk/dcmnet/dcompat.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/qrdefine.h \ diff --git a/dcmpstat/apps/Makefile.in b/dcmpstat/apps/Makefile.in index f17db0a5..eaade7c7 100644 --- a/dcmpstat/apps/Makefile.in +++ b/dcmpstat/apps/Makefile.in @@ -75,10 +75,10 @@ LIBDIRS = -L$(top_srcdir)/libsrc $(dcmpstatlibdir) $(dcmqrdblibdir) $(dcmnetlibd LOCALLIBS = $(dcmpstatlib) $(dcmsignlib) $(dcmsrlib) $(dcmimagelib) $(dcmimglelib) \ $(dcmqrdblib) $(dcmnetlib) $(dcmtlslib) $(dcmdatalib) $(ofloglib) $(ofstdlib) \ $(TIFFLIBS) $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(TCPWRAPPERLIBS) $(OPENSSLLIBS) \ - $(ICONVLIBS) + $(CHARCONVLIBS) DCMMKLUT_LIBS = $(dcmimglelib) $(dcmdatalib) $(ofloglib) $(ofstdlib) $(XMLLIBS) $(ZLIBLIBS) \ - $(ICONVLIBS) -DCMMKCRV_LIBS = $(dcmdatalib) $(ofloglib) $(ofstdlib) $(XMLLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(CHARCONVLIBS) +DCMMKCRV_LIBS = $(dcmdatalib) $(ofloglib) $(ofstdlib) $(XMLLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) objs = dcmpsmk.o dcmp2pgm.o dcmmklut.o dcmmkcrv.o dcmpssnd.o dcmpsrcv.o dcmpsprt.o dcmprscu.o \ dcmprscp.o dcmpschk.o diff --git a/dcmpstat/apps/dcmprscu.cc b/dcmpstat/apps/dcmprscu.cc index 96bd1468..bccc9efc 100644 --- a/dcmpstat/apps/dcmprscu.cc +++ b/dcmpstat/apps/dcmprscu.cc @@ -564,9 +564,13 @@ static OFCondition updateJobList( { currentName = dp->d_name; #endif - if ((prefix == currentName.substr(0, prefixSize)) && - (currentName.size() > postfixSize) && - (postfix == currentName.substr(currentName.size()-postfixSize))) + if + ( + currentName.size() > (prefixSize + postfixSize) && + prefix == currentName.substr(0, prefixSize) && + postfix == currentName.substr(currentName.size()-postfixSize) && + currentName.find_first_not_of("1234567890",prefixSize) == (currentName.size() - postfixSize) + ) { // name matches pattern jobName = spoolFolder; diff --git a/dcmpstat/apps/dcmpsrcv.cc b/dcmpstat/apps/dcmpsrcv.cc index acb984ce..ad558df4 100644 --- a/dcmpstat/apps/dcmpsrcv.cc +++ b/dcmpstat/apps/dcmpsrcv.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1999-2014, OFFIS e.V. + * Copyright (C) 1999-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -300,7 +300,7 @@ static associationType negotiateAssociation( /* accept any of the storage syntaxes */ cond = ASC_acceptContextsWithPreferredTransferSyntaxes( (*assoc)->params, - dcmAllStorageSOPClassUIDs, numberOfAllDcmStorageSOPClassUIDs, + dcmAllStorageSOPClassUIDs, numberOfDcmAllStorageSOPClassUIDs, (const char**)transferSyntaxes, numTransferSyntaxes); errorCond(cond, "Cannot accept presentation contexts:"); } diff --git a/dcmpstat/docs/dcmp2pgm.man b/dcmpstat/docs/dcmp2pgm.man index 21c0371a..36f1a773 100644 --- a/dcmpstat/docs/dcmp2pgm.man +++ b/dcmpstat/docs/dcmp2pgm.man @@ -91,6 +91,22 @@ bitmap-out output DICOM image or PGM bitmap save presentation state to file \endverbatim +\section notes NOTES + +\subsection limitations Limitations + +Please note that the \b dcmp2pgm tool does not render all aspects that are +defined by the Grayscale Softcopy Presentation State (GSPS) object but only +those that are supported by the underlying DCMTK classes. In particular, +textual and graphical annotations will not be visible in the output image. +The reason is that these aspects of a GSPS object are typically rendered by +DICOMscope, the graphical user interface that is put on top of the related +DCMTK classes and written in Java. + +Also concepts that were introduced after the initial definition of the GSPS +IOD (see Supplement 33) are ignored. This includes Supplement 120 with its +extended features like e.g. Compound Graphics. + \section logging LOGGING The level of logging output of the various command line tools and underlying @@ -154,6 +170,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 1998-2014 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1998-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmpstat/libsrc/Makefile.dep b/dcmpstat/libsrc/Makefile.dep index cd8e037c..af477ded 100644 --- a/dcmpstat/libsrc/Makefile.dep +++ b/dcmpstat/libsrc/Makefile.dep @@ -252,11 +252,16 @@ dviface.o: dviface.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmpstat/dvpsdal.h ../include/dcmtk/dcmpstat/dvpssvl.h \ ../include/dcmtk/dcmpstat/dvpspl.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ ../../dcmnet/include/dcmtk/dcmnet/dndefine.h \ ../../dcmnet/include/dcmtk/dcmnet/dcompat.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/qrdefine.h \ @@ -329,7 +334,6 @@ dviface.o: dviface.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmsr/include/dcmtk/dcmsr/dsrimgse.h \ ../../dcmsr/include/dcmtk/dcmsr/dsrwavvl.h \ ../../dcmsr/include/dcmtk/dcmsr/dsrwavch.h \ - ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmsr/include/dcmtk/dcmsr/dsrrtpl.h \ ../../dcmsr/include/dcmtk/dcmsr/dsrctpl.h \ ../../dcmsr/include/dcmtk/dcmsr/dsrsoprf.h \ @@ -3146,6 +3150,11 @@ dvpsprt.o: dvpsprt.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmpstat/dvpsdal.h ../include/dcmtk/dcmpstat/dvpssvl.h \ ../include/dcmtk/dcmpstat/dvpspl.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/qrdefine.h \ @@ -3728,6 +3737,11 @@ dvpsspl.o: dvpsspl.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmpstat/dvpsib.h ../include/dcmtk/dcmpstat/dviface.h \ ../include/dcmtk/dcmpstat/dvpscf.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmqrdb/include/dcmtk/dcmqrdb/qrdefine.h \ diff --git a/dcmpstat/libsrc/dviface.cc b/dcmpstat/libsrc/dviface.cc index 5f81d37e..c7f44bc8 100644 --- a/dcmpstat/libsrc/dviface.cc +++ b/dcmpstat/libsrc/dviface.cc @@ -1357,18 +1357,22 @@ OFBool DVInterface::createIndexCache() if (!series->List.isElem(record.SOPInstanceUID)) { DVPSInstanceType type = DVPSI_image; - if (record.Modality != NULL) - { - if (strcmp(record.Modality, "PR") == 0) - type = DVPSI_presentationState; - if (strcmp(record.Modality, "SR") == 0) - type = DVPSI_structuredReport; - else if (strcmp(record.Modality, "HC") == 0) - type =DVPSI_hardcopyGrayscale; - else if (strcmp(record.Modality, "STORED_PRINT") == 0) - type = DVPSI_storedPrint; - } - series->List.addItem(record.SOPInstanceUID, counter, record.hstat, type, record.ImageSize, record.filename); + if (DSRTypes::sopClassUIDToDocumentType(record.SOPClassUID) != DSRTypes::DT_invalid) + type = DVPSI_structuredReport; + else if (strcmp(record.Modality, "PR") == 0) + type = DVPSI_presentationState; + else if (strcmp(record.Modality, "SR") == 0) + type = DVPSI_structuredReport; + else if (strcmp(record.Modality, "HC") == 0) + type =DVPSI_hardcopyGrayscale; + else if (strcmp(record.Modality, "STORED_PRINT") == 0) + type = DVPSI_storedPrint; + series->List.addItem(record.SOPInstanceUID, + counter, + OFstatic_cast(DVIFhierarchyStatus, record.hstat), + type, + record.ImageSize, + record.filename); if (series->Type == DVPSI_image) series->Type = type; // series contains only one type of instances } @@ -1677,7 +1681,7 @@ OFCondition DVInterface::selectInstance(const char *instanceUID, const char *sop { if (sopClassUID == NULL) return EC_Normal; - else if ((idxRec.SOPClassUID != NULL) && (strcmp(sopClassUID, idxRec.SOPClassUID) == 0)) + else if (strcmp(sopClassUID, idxRec.SOPClassUID) == 0) return EC_Normal; } } @@ -1953,7 +1957,9 @@ OFCondition DVInterface::instanceReviewed(int pos) lockDatabase(); OFBool wasNew = newInstancesReceived(); if (pHandle == NULL) return EC_IllegalCall; + pHandle->DB_unlock(); OFCondition result = pHandle->instanceReviewed(pos); + pHandle->DB_lock(OFFalse); if (!wasNew) resetDatabaseReferenceTime(); releaseDatabase(); return result; @@ -1985,11 +1991,8 @@ int DVInterface::findStudyIdx(StudyDescRecord *study, int i = 0; for (i = 0; i < PSTAT_MAXSTUDYCOUNT; i++) { - if ((study[i].StudyInstanceUID != NULL) && - (strcmp(uid, study[i].StudyInstanceUID) == 0)) - { + if (strcmp(uid, study[i].StudyInstanceUID) == 0) return i; - } } } return -1; @@ -2136,8 +2139,7 @@ OFCondition DVInterface::deleteInstance(const char *studyUID, int i = 0; for (i = 0; i < PSTAT_MAXSTUDYCOUNT; i++) { - if ((study_desc[i].StudyInstanceUID != NULL) && - (strcmp(studyUID, study_desc[i].StudyInstanceUID) != 0)) + if (strcmp(studyUID, study_desc[i].StudyInstanceUID) != 0) { if (study_desc[i].NumberofRegistratedImages > 0) { @@ -4080,7 +4082,7 @@ OFBool DVInterface::verifyUserPassword(const char * /*userID*/, const char * /*p /* attempt to load the private key with the given password*/ EVP_PKEY *pkey = NULL; - BIO *in = BIO_new(BIO_s_file_internal()); + BIO *in = BIO_new(BIO_s_file()); if (in) { if (BIO_read_filename(in, filename.c_str()) > 0) diff --git a/dcmpstat/libsrc/dvpshlp.cc b/dcmpstat/libsrc/dvpshlp.cc index 735a613d..252ba2f9 100644 --- a/dcmpstat/libsrc/dvpshlp.cc +++ b/dcmpstat/libsrc/dvpshlp.cc @@ -60,7 +60,7 @@ OFCondition DVPSHelper::loadFileFormat(const char *filename, DcmFileFormat *&fileformat) { fileformat = new DcmFileFormat; - OFCondition result = fileformat->loadFile(filename); + OFCondition result = fileformat->loadFile(OFFilename(filename,OFTrue)); if (result.bad()) { diff --git a/dcmpstat/libsrc/dvpstat.cc b/dcmpstat/libsrc/dvpstat.cc index 60062038..37225d61 100644 --- a/dcmpstat/libsrc/dvpstat.cc +++ b/dcmpstat/libsrc/dvpstat.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2010, OFFIS e.V. + * Copyright (C) 1998-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -1346,9 +1346,9 @@ Uint16 DVPresentationState::findOverlayGroup(Uint16 currentGroup) if (allocated[(Uint16)(group - 0x6000) >> 1] == 2) return currentGroup; } // find a free group - for (i=0; i<16; i++) if (allocated[i]==0) return 0x6000+(i<<1); + for (i=0; i<16; i++) if (allocated[i]==0) return OFstatic_cast(Uint16, 0x6000+(i<<1)); // find a group not used in the presentation state - for (i=0; i<16; i++) if (allocated[i]<2) return 0x6000+(i<<1); + for (i=0; i<16; i++) if (allocated[i]<2) return OFstatic_cast(Uint16, 0x6000+(i<<1)); // not found. return 0; } diff --git a/dcmpstat/tests/Makefile.dep b/dcmpstat/tests/Makefile.dep index 3bceee7e..d3b45e09 100644 --- a/dcmpstat/tests/Makefile.dep +++ b/dcmpstat/tests/Makefile.dep @@ -44,13 +44,13 @@ msgserv.o: msgserv.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../../dcmnet/include/dcmtk/dcmnet/dcmtrans.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../dcmnet/include/dcmtk/dcmnet/dcmlayer.h \ ../../dcmnet/include/dcmtk/dcmnet/dndefine.h \ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ ../../dcmnet/include/dcmtk/dcmnet/dcompat.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h \ ../../dcmnet/include/dcmtk/dcmnet/dul.h \ - ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../dcmnet/include/dcmtk/dcmnet/extneg.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ diff --git a/dcmpstat/tests/Makefile.in b/dcmpstat/tests/Makefile.in index 44bf9971..3049c870 100644 --- a/dcmpstat/tests/Makefile.in +++ b/dcmpstat/tests/Makefile.in @@ -33,7 +33,7 @@ LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmnetdir)/libsrc -L$(ofstddir)/libsrc \ -L$(dcmimagedir)/libsrc -L$(dcmsrdir)/libsrc LOCALLIBS = -ldcmpstat -ldcmdsig -ldcmsr -ldcmimage -ldcmimgle -ldcmqrdb -ldcmnet \ -ldcmtls -ldcmdata -loflog -lofstd $(TIFFLIBS) $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) \ - $(TCPWRAPPERLIBS) $(OPENSSLLIBS) $(ICONVLIBS) + $(TCPWRAPPERLIBS) $(OPENSSLLIBS) $(CHARCONVLIBS) objs = msgserv.o progs = msgserv diff --git a/dcmqrdb/apps/Makefile.dep b/dcmqrdb/apps/Makefile.dep index 708bae4f..387deb26 100644 --- a/dcmqrdb/apps/Makefile.dep +++ b/dcmqrdb/apps/Makefile.dep @@ -150,7 +150,11 @@ dcmqrscp.o: dcmqrscp.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofgrp.h \ ../../ofstd/include/dcmtk/ofstd/ofpwd.h \ ../include/dcmtk/dcmqrdb/dcmqrdbi.h ../include/dcmtk/dcmqrdb/dcmqrdba.h \ - ../../ofstd/include/dcmtk/ofstd/offname.h + ../../ofstd/include/dcmtk/ofstd/offname.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h dcmqrti.o: dcmqrti.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../include/dcmtk/dcmqrdb/dcmqrtis.h \ diff --git a/dcmqrdb/apps/Makefile.in b/dcmqrdb/apps/Makefile.in index 460de753..f46abf74 100644 --- a/dcmqrdb/apps/Makefile.in +++ b/dcmqrdb/apps/Makefile.in @@ -36,7 +36,7 @@ LOCALINCLUDES = $(dcmnetinc) $(dcmdatainc) $(ofstdinc) $(ofloginc) LIBDIRS = -L$(top_srcdir)/libsrc $(dcmnetlibdir) $(dcmdatalibdir) \ $(ofstdlibdir) $(ofloglibdir) LOCALLIBS = -ldcmqrdb $(dcmnetlib) $(dcmdatalib) $(ofstdlib) $(ofloglib) \ - $(ZLIBLIBS) $(TCPWRAPPERLIBS) $(ICONVLIBS) + $(ZLIBLIBS) $(TCPWRAPPERLIBS) $(CHARCONVLIBS) objs = dcmqrscp.o dcmqrti.o dcmqridx.o progs = dcmqrscp dcmqrti dcmqridx diff --git a/dcmqrdb/apps/dcmqrscp.cc b/dcmqrdb/apps/dcmqrscp.cc index f3677e4f..37104da2 100644 --- a/dcmqrdb/apps/dcmqrscp.cc +++ b/dcmqrdb/apps/dcmqrscp.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2014, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -77,7 +77,10 @@ END_EXTERN_C #endif #ifdef WITH_ZLIB -#include /* for zlibVersion() */ +#include /* for zlibVersion() */ +#endif +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION +#include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #endif #ifndef OFFIS_CONSOLE_APPLICATION @@ -197,6 +200,9 @@ main(int argc, char *argv[]) cmd.addOption("--prefer-mpeg2-high", "+xh", "prefer MPEG2 Main Profile @ High Level TS"); cmd.addOption("--prefer-mpeg4", "+xn", "prefer MPEG4 AVC/H.264 HP / Level 4.1 TS"); cmd.addOption("--prefer-mpeg4-bd", "+xl", "prefer MPEG4 AVC/H.264 BD-compatible TS"); + cmd.addOption("--prefer-mpeg4-2-2d", "+x2", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (2D)"); + cmd.addOption("--prefer-mpeg4-2-3d", "+x3", "prefer MPEG4 AVC/H.264 HP / Level 4.2 TS (3D)"); + cmd.addOption("--prefer-mpeg4-2-st", "+xo", "prefer MPEG4 AVC/H.264 Stereo / Level 4.2 TS"); cmd.addOption("--prefer-rle", "+xr", "prefer RLE lossless TS"); #ifdef WITH_ZLIB cmd.addOption("--prefer-deflated", "+xd", "prefer deflated expl. VR little endian TS"); @@ -217,10 +223,13 @@ main(int argc, char *argv[]) cmd.addOption("--propose-j2k-lossy", "-xw", "propose JPEG 2000 lossy TS\nand all uncompressed transfer syntaxes"); cmd.addOption("--propose-jls-lossless", "-xt", "propose JPEG-LS lossless TS\nand all uncompressed transfer syntaxes"); cmd.addOption("--propose-jls-lossy", "-xu", "propose JPEG-LS lossy TS\nand all uncompressed transfer syntaxes"); - cmd.addOption("--propose-mpeg2", "-xm", "propose MPEG2 Main Profile @ Main Level TS only"); - cmd.addOption("--propose-mpeg2-high", "-xh", "propose MPEG2 Main Profile @ High Level TS only"); - cmd.addOption("--propose-mpeg4", "-xn", "propose MPEG4 AVC/H.264 HP / Level 4.1 TS only"); - cmd.addOption("--propose-mpeg4-bd", "-xl", "propose MPEG4 AVC/H.264 BD-compatible TS only"); + cmd.addOption("--propose-mpeg2", "-xm", "propose MPEG2 Main Profile @ Main Level TS"); + cmd.addOption("--propose-mpeg2-high", "-xh", "propose MPEG2 Main Profile @ High Level TS"); + cmd.addOption("--propose-mpeg4", "-xn", "propose MPEG4 AVC/H.264 HP / Level 4.1 TS"); + cmd.addOption("--propose-mpeg4-bd", "-xl", "propose MPEG4 AVC/H.264 BD-compatible TS"); + cmd.addOption("--propose-mpeg4-2-2d", "-x2", "propose MPEG4 AVC/H.264 HP / Level 4.2 TS (2D)"); + cmd.addOption("--propose-mpeg4-2-3d", "-x3", "propose MPEG4 AVC/H.264 HP / Level 4.2 TS (3D)"); + cmd.addOption("--propose-mpeg4-2-st", "-xo", "propose MPEG4 AVC/H.264 Stereo / Level 4.2 TS"); cmd.addOption("--propose-rle", "-xr", "propose RLE lossless TS\nand all uncompressed transfer syntaxes"); #ifdef WITH_ZLIB cmd.addOption("--propose-deflated", "-xd", "propose deflated expl. VR little endian TS\nand all uncompressed transfer syntaxes"); @@ -291,6 +300,28 @@ main(int argc, char *argv[]) "0=uncompressed, 1=fastest, 9=best compression"); #endif +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + cmd.addSubGroup("specific character set:"); + cmd.addOption("--use-request-charset", "+Cr", "try to convert all element values that are\n" + "affected by Specific Character Set (0008,0005)\n" + "to the one specified in the request data set,\n" + "fall back to the one specified via\n" + "--convert-to-xxx if that is not possible\n" + "(default, unless overridden by config file)"); + cmd.addOption("--override-charset", "-Cr", "convert affected element values to the character\n" + "set specified via --convert-to-xxx, ignoring\n" + "the one specified in the request"); + cmd.addOption("--convert-to-ascii", "+A7", "convert affected element values to 7-bit ASCII\n" + "(default, unless overridden by config file)"); + cmd.addOption("--convert-to-utf8", "+U8", "convert affected element values to UTF-8"); + cmd.addOption("--convert-to-latin1", "+L1", "convert affected element values to ISO 8859-1"); + cmd.addOption("--convert-to-charset", "+C", 1, "[c]harset: string", + "convert affected element values to the character\n" + "set specified by the DICOM defined term c"); + cmd.addOption("--transliterate", "-Ct", "try to approximate characters that cannot be\nrepresented through similar looking characters"); + cmd.addOption("--discard-illegal", "-Cd", "discard characters that cannot be represented\nin destination character set"); +#endif + /* evaluate command line */ prepareCmdLineArgs(argc, argv, OFFIS_CONSOLE_APPLICATION); if (app.parseCommandLine(cmd, argc, argv)) @@ -302,7 +333,7 @@ main(int argc, char *argv[]) { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used:"; -#if !defined(WITH_ZLIB) && !defined(WITH_TCPWRAPPER) +#if !defined(WITH_ZLIB) && !defined(WITH_TCPWRAPPER) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) COUT << " none" << OFendl; #else COUT << OFendl; @@ -312,6 +343,9 @@ main(int argc, char *argv[]) #endif #ifdef WITH_TCPWRAPPER COUT << "- LIBWRAP" << OFendl; +#endif +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; #endif return 0; } @@ -380,6 +414,9 @@ main(int argc, char *argv[]) if (cmd.findOption("--prefer-mpeg2-high")) options.networkTransferSyntax_ = EXS_MPEG2MainProfileAtHighLevel; if (cmd.findOption("--prefer-mpeg4")) options.networkTransferSyntax_ = EXS_MPEG4HighProfileLevel4_1; if (cmd.findOption("--prefer-mpeg4-bd")) options.networkTransferSyntax_ = EXS_MPEG4BDcompatibleHighProfileLevel4_1; + if (cmd.findOption("--prefer-mpeg4-2-2d")) options.networkTransferSyntax_ = EXS_MPEG4HighProfileLevel4_2_For2DVideo; + if (cmd.findOption("--prefer-mpeg4-2-3d")) options.networkTransferSyntax_ = EXS_MPEG4HighProfileLevel4_2_For3DVideo; + if (cmd.findOption("--prefer-mpeg4-2-st")) options.networkTransferSyntax_ = EXS_MPEG4StereoHighProfileLevel4_2; if (cmd.findOption("--prefer-rle")) options.networkTransferSyntax_ = EXS_RLELossless; #ifdef WITH_ZLIB if (cmd.findOption("--prefer-deflated")) options.networkTransferSyntax_ = EXS_DeflatedLittleEndianExplicit; @@ -405,6 +442,9 @@ main(int argc, char *argv[]) if (cmd.findOption("--propose-mpeg2-high")) options.networkTransferSyntaxOut_ = EXS_MPEG2MainProfileAtHighLevel; if (cmd.findOption("--propose-mpeg4")) options.networkTransferSyntaxOut_ = EXS_MPEG4HighProfileLevel4_1; if (cmd.findOption("--propose-mpeg4-bd")) options.networkTransferSyntaxOut_ = EXS_MPEG4BDcompatibleHighProfileLevel4_1; + if (cmd.findOption("--propose-mpeg4-2-2d")) options.networkTransferSyntaxOut_ = EXS_MPEG4HighProfileLevel4_2_For2DVideo; + if (cmd.findOption("--propose-mpeg4-2-3d")) options.networkTransferSyntaxOut_ = EXS_MPEG4HighProfileLevel4_2_For3DVideo; + if (cmd.findOption("--propose-mpeg4-2-st")) options.networkTransferSyntaxOut_ = EXS_MPEG4StereoHighProfileLevel4_2; if (cmd.findOption("--propose-rle")) options.networkTransferSyntaxOut_ = EXS_RLELossless; #ifdef WITH_ZLIB if (cmd.findOption("--propose-deflated")) options.networkTransferSyntaxOut_ = EXS_DeflatedLittleEndianExplicit; @@ -480,6 +520,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-little", "--prefer-mpeg2-high", options.networkTransferSyntax_ == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-little", "--prefer-mpeg4", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-little", "--prefer-mpeg4-bd", options.networkTransferSyntax_ == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-2d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-3d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-little", "--prefer-mpeg4-2-st", options.networkTransferSyntax_ == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-little", "--prefer-rle", options.networkTransferSyntax_ == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. #endif @@ -500,6 +543,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-big", "--prefer-mpeg2-high", options.networkTransferSyntax_ == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-big", "--prefer-mpeg4", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-big", "--prefer-mpeg4-bd", options.networkTransferSyntax_ == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-2d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-3d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-big", "--prefer-mpeg4-2-st", options.networkTransferSyntax_ == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-big", "--prefer-rle", options.networkTransferSyntax_ == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. #endif @@ -520,6 +566,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-implicit", "--prefer-mpeg2-high", options.networkTransferSyntax_ == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-bd", options.networkTransferSyntax_ == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-2d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-3d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-implicit", "--prefer-mpeg4-2-st", options.networkTransferSyntax_ == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-implicit", "--prefer-rle", options.networkTransferSyntax_ == EXS_RLELossless); // we don't have to check a conflict for --prefer-deflated because we can always convert that to uncompressed. #endif @@ -541,6 +590,9 @@ main(int argc, char *argv[]) app.checkConflict("--write-xfer-deflated", "--prefer-mpeg2-high", options.networkTransferSyntax_ == EXS_MPEG2MainProfileAtHighLevel); app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_1); app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-bd", options.networkTransferSyntax_ == EXS_MPEG4BDcompatibleHighProfileLevel4_1); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-2d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For2DVideo); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-3d", options.networkTransferSyntax_ == EXS_MPEG4HighProfileLevel4_2_For3DVideo); + app.checkConflict("--write-xfer-deflated", "--prefer-mpeg4-2-st", options.networkTransferSyntax_ == EXS_MPEG4StereoHighProfileLevel4_2); app.checkConflict("--write-xfer-deflated", "--prefer-rle", options.networkTransferSyntax_ == EXS_RLELossless); #endif options.writeTransferSyntax_ = EXS_DeflatedLittleEndianExplicit; @@ -643,6 +695,35 @@ main(int argc, char *argv[]) } if (overrideMaxPDU > 0) options.maxPDU_ = overrideMaxPDU; +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + /* character set conversion options */ + DcmQueryRetrieveCharacterSetOptions& characterSetOptions = config.getCharacterSetOptions(); + if (!(characterSetOptions.flags & DcmQueryRetrieveCharacterSetOptions::Configured)) + characterSetOptions.flags = DcmQueryRetrieveCharacterSetOptions::Configured | DcmQueryRetrieveCharacterSetOptions::Fallback; + cmd.beginOptionBlock(); + if (cmd.findOption("--use-request-charset")) { + characterSetOptions.flags &= ~DcmQueryRetrieveCharacterSetOptions::Override; + } + if (cmd.findOption("--override-charset")) { + characterSetOptions.flags |= DcmQueryRetrieveCharacterSetOptions::Override; + } + cmd.endOptionBlock(); + + cmd.beginOptionBlock(); + if (cmd.findOption("--convert-to-utf8")) characterSetOptions.characterSet = "ISO_IR 192"; + if (cmd.findOption("--convert-to-latin1")) characterSetOptions.characterSet = "ISO_IR 100"; + if (cmd.findOption("--convert-to-ascii")) characterSetOptions.characterSet = ""; + if (cmd.findOption("--convert-to-charset")) app.checkValue(cmd.getValue(characterSetOptions.characterSet)); + cmd.endOptionBlock(); + + if (cmd.findOption("--transliterate")) { + characterSetOptions.conversionFlags |= DCMTypes::CF_transliterate; + } + if (cmd.findOption("--discard-illegal")) { + characterSetOptions.conversionFlags |= DCMTypes::CF_discardIllegal; + } +#endif // DCMTK_ENABLE_CHARSET_CONVERSION + /* make sure data dictionary is loaded */ if (!dcmDataDict.isDictionaryLoaded()) { OFLOG_WARN(dcmqrscpLogger, "no data dictionary loaded, check environment variable: " diff --git a/dcmqrdb/docs/dcmqrcnf.txt b/dcmqrdb/docs/dcmqrcnf.txt index 0ff2daeb..37eb07b0 100644 --- a/dcmqrdb/docs/dcmqrcnf.txt +++ b/dcmqrdb/docs/dcmqrcnf.txt @@ -30,22 +30,34 @@ value list. The Global Parameter part knows of the following keywords: -NetworkTCPPort - integer value -MaxPDUSize - integer value -MaxAssociations - integer value -UserName - string value -GroupName - string value +NetworkTCPPort - integer value +MaxPDUSize - integer value +MaxAssociations - integer value +SpecificCharacterSet - comma separated list of string options +UserName - string value +GroupName - string value There are default values for all these keywords hardcoded in the configuration module. Example: -NetworkTCPPort = 104 -MaxPDUSize = 8192 -MaxAssociations = 20 -UserName = (do not change user) -GroupName = (do not change group) +NetworkTCPPort = 104 +MaxPDUSize = 8192 +MaxAssociations = 20 +SpecificCharacterSet = fallback +UserName = (do not change user) +GroupName = (do not change group) + +Available options for specific character sets are: + + "" - a character set, e.g. "ISO_IR 192" for UTF-8 + fallback - retry with another character set if conversion failed + override - override the response character set with the given one + (otherwise the given character set will act as fall back + if enabled) + transliterate - enable transliteration of unsupported characters + discard - discard unsupported characters NOTE: You must have root privileges to bind port 104 for DICOM association requests on Unix/Linux/Posix platforms as this is a privileged port number diff --git a/dcmqrdb/docs/dcmqrscp.man b/dcmqrdb/docs/dcmqrscp.man index 8150a6b5..4857262d 100644 --- a/dcmqrdb/docs/dcmqrscp.man +++ b/dcmqrdb/docs/dcmqrscp.man @@ -228,6 +228,15 @@ preferred network transfer syntaxes (incoming associations): +xl --prefer-mpeg4-bd prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS + +xr --prefer-rle prefer RLE lossless TS @@ -292,6 +301,15 @@ proposed transmission transfer syntaxes (outgoing associations): -xl --propose-mpeg4-bd propose MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS only + -x2 --propose-mpeg4-2-2d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos only + + -x3 --propose-mpeg4-2-3d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos only + + -xo --propose-mpeg4-2-st + propose MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS only + -xr --propose-rle propose RLE lossless TS and all uncompressed transfer syntaxes @@ -429,6 +447,42 @@ deflate compression level (only with --propose-deflated or +cl --compression-level [l]evel: integer (default: 6) 0=uncompressed, 1=fastest, 9=best compression + +specific character set: + +Cr --use-request-charset + try to convert all element values that are + affected by Specific Character Set (0008,0005) + to the one specified in the request data set, + fall back to the one specified via + --convert-to-xxx if that is not possible + (default, unless overridden by config file) + + -Cr --override-charset + convert affected element values to the character + set specified via --convert-to-xxx, ignoring + the one specified in the request + + +A7 --convert-to-ascii + convert affected element values to 7-bit ASCII + (default, unless overridden by config file) + + +U8 --convert-to-utf8 + convert affected element values to UTF-8 + + +L1 --convert-to-latin1 + convert affected element values to ISO 8859-1 + + +C --convert-to-charset [c]harset: string + convert affected element values to the character + set specified by the DICOM defined term c + + -Ct --transliterate + try to approximate characters that cannot be + represented through similar looking characters + + -Cd --discard-illegal + discard characters that cannot be represented + in destination character set \endverbatim \section notes NOTES @@ -479,12 +533,14 @@ DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3 DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1 CTImageStorage 1.2.840.10008.5.1.4.1.1.2 EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1 +LegacyConvertedEnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.2 RETIRED_UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3 UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1 MRImageStorage 1.2.840.10008.5.1.4.1.1.4 EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1 MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2 EnhancedMRColorImageStorage 1.2.840.10008.5.1.4.1.1.4.3 +LegacyConvertedEnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.4 RETIRED_NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.5 RETIRED_UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6 UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1 @@ -571,6 +627,7 @@ ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88. EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128 +LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128.1 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 @@ -584,9 +641,6 @@ RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481 RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8 RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 \endverbatim The \b dcmqrscp application will propose presentation contexts for all of the @@ -617,6 +671,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 \endverbatim @@ -759,6 +816,7 @@ RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88. ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 ContentAssessmentResultsStorage 1.2.840.10008.5.1.4.1.1.90.1 EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 @@ -767,6 +825,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 @@ -788,9 +848,6 @@ DICONDE_EddyCurrentMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.601 DRAFT_RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.1 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 RTBrachyApplicationSetupDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.10 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 PrivateShutdownSOPClass 1.2.276.0.7230010.3.4.1915765545.18030.917282194.0 \endverbatim @@ -827,6 +884,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 \endverbatim @@ -973,6 +1033,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 1993-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 1993-2017 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmqrdb/etc/dcmqrscp.cfg b/dcmqrdb/etc/dcmqrscp.cfg index 9b9b94ca..ad16b0e8 100644 --- a/dcmqrdb/etc/dcmqrscp.cfg +++ b/dcmqrdb/etc/dcmqrscp.cfg @@ -10,6 +10,16 @@ NetworkTCPPort = 104 MaxPDUSize = 16384 MaxAssociations = 16 + +# +# Default settings for specific character set behavior: +# SpecificCharacterSet = fallback + +# +# Uncomment to override response character set with UTF-8 and enable +# transliteration and discarding of unsupported characters: +# SpecificCharacterSet = "ISO_IR 192", override, discard, transliterate + # # UserName = # GroupName = diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcbf.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcbf.h index cf420c93..3a1fa001 100644 --- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcbf.h +++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcbf.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -28,6 +28,7 @@ class DcmQueryRetrieveDatabaseHandle; class DcmQueryRetrieveOptions; +class DcmQueryRetrieveCharacterSetOptions; /** this class maintains the context information that is passed to the * callback function called by DIMSE_findProvider. @@ -43,11 +44,13 @@ public: DcmQueryRetrieveFindContext( DcmQueryRetrieveDatabaseHandle& handle, const DcmQueryRetrieveOptions& options, - DIC_US priorStat) + DIC_US priorStat, + const DcmQueryRetrieveCharacterSetOptions& characterSetOptions) : dbHandle(handle) , options_(options) , priorStatus(priorStat) , ourAETitle() + , characterSetOptions(characterSetOptions) { } @@ -89,6 +92,9 @@ private: /// our current title OFString ourAETitle; + /// Specific Character Set related options + const DcmQueryRetrieveCharacterSetOptions& characterSetOptions; + }; #endif diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcnf.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcnf.h index fd23d2e8..9284d68b 100644 --- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcnf.h +++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcnf.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -39,6 +39,76 @@ extern DCMTK_DCMQRDB_EXPORT OFLogger DCM_dcmqrdbLogger; #define DCMQRDB_ERROR(msg) OFLOG_ERROR(DCM_dcmqrdbLogger, msg) #define DCMQRDB_FATAL(msg) OFLOG_FATAL(DCM_dcmqrdbLogger, msg) +/** this class describes configuration settings regarding character set handling + */ +struct DCMTK_DCMQRDB_EXPORT DcmQueryRetrieveCharacterSetOptions +{ + /** Flags for controlling the application behavior regarding character set + * conversion. Might be used for global and for per peer configuration. + */ + enum Flags + { + /** Activate options for Specific Character Set. + * If this flag is not set, all other flags and the given string for + * Specific Character Set will be ignored, e.g. using the global + * settings instead of peer specific ones. + */ + Configured = 0x01, + + /** Always respond using the given character set, ignoring the + * character set of the request. + * If this flag is not set, the response will be created to the + * character set of the request (if possible). + */ + Override = 0x02, + + /** Fall back to another character set. + * If this flag is set, the application will try to recover from a + * conversion failure: + * - If 'Override' is set, the application will try to convert + * the response to the character set of the request if conversion + * to the given character set failed. + * - If 'Override' is not set, the application will try to convert + * the response to the given character set if conversion to the + * character set of the response failed. + * If this flag is not set, the response will be left as-is, i.e. + * like it is stored in the index file, if conversion to another + * character set failed. + * @note The fall back conversion might also fail, in which case + * the response will still be left as-is, even if a fall back + * option was given. + */ + Fallback = 0x04 + }; + + /** Constructor, will construct an object that is marked as + * "not configured". + */ + DcmQueryRetrieveCharacterSetOptions(); + + /** extract arguments from the config file. + * @param mnemonic the name of the current option + * @param valueptr the argument(s) + * @return OFTrue if the given name value pair referred to a character + * set option and was 'consumed', OFFalse if it should be handled + * elsewhere. + */ + OFBool parseOptions(const char* mnemonic, char* valueptr); + + /// the given character set + OFString characterSet; + + /** determine semantics of the character set value + * @see DcmQueryRetrieveCharacterSet::Flags + */ + unsigned flags; + + /** special character set conversion flags. + * @see OFCharacterEncoding::ConversionFlags + */ + unsigned conversionFlags; +}; + /** this class describes configuration settings for the quota of a storage area */ struct DCMTK_DCMQRDB_EXPORT DcmQueryRetrieveConfigQuota @@ -314,8 +384,24 @@ public: */ const char *getGroupName() const; + /* + * get Character Set Options + * Input : + * Return : Character Set Options + */ + const DcmQueryRetrieveCharacterSetOptions& getCharacterSetOptions() const; + + /* + * get Character Set Options + * Input : + * Return : Character Set Options + */ + DcmQueryRetrieveCharacterSetOptions& getCharacterSetOptions(); + private: + friend class DcmQueryRetrieveCharacterSetOptions; + const char* vendorForPeerAETitle(const char *peerAETitle) const; int countCtnTitles() const; @@ -434,6 +520,7 @@ private: int networkTCPPort_; Uint32 maxPDUSize_; int maxAssociations_; + DcmQueryRetrieveCharacterSetOptions characterSetOptions_; DcmQueryRetrieveConfigConfiguration CNF_Config; /* configuration file contents */ DcmQueryRetrieveConfigHostTable CNF_HETable; /* HostEntries Table */ DcmQueryRetrieveConfigHostTable CNF_VendorTable; /* Vendor Table */ diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h index 7b9e502f..b84892c4 100644 --- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h +++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -33,6 +33,7 @@ class DcmDataset; class DcmQueryRetrieveDatabaseStatus; +struct DcmQueryRetrieveCharacterSetOptions; #ifndef MAXPATHLEN #define MAXPATHLEN 1024 @@ -114,11 +115,13 @@ public: * PENDING if more FIND responses will be generated or SUCCESS if no more * FIND responses will be generated (SUCCESS indicates the completion of * a operation), or another status code upon failure. + * @param characterSetOptions the character set options for response conversion etc. * @return EC_Normal upon normal completion, or some other OFCondition code upon failure. */ virtual OFCondition nextFindResponse( DcmDataset **findResponseIdentifiers, - DcmQueryRetrieveDatabaseStatus *status) = 0; + DcmQueryRetrieveDatabaseStatus *status, + const DcmQueryRetrieveCharacterSetOptions& characterSetOptions) = 0; /** cancel the ongoing FIND request, stop and reset every running operation * associated with this request, delete existing temporary files. diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h index dca3a8bf..ec0433c9 100644 --- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h +++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -36,7 +36,16 @@ struct IdxRecord; struct DB_ElementList; class DcmQueryRetrieveConfig; -#define DBINDEXFILE "index.dat" +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THE INDEX FILE STRUCTS IS MODIFIED */ + +#define DBINDEXFILE "index.dat" +#define DBMAGIC "QRDB" +#define DBVERSION 4 +#define DBHEADERSIZE 6 + +#if DBVERSION > 0xFF +#error maximum database version reached, you have to invent a new mechanism +#endif #ifndef _WIN32 /* we lock image files on all platforms except Win32 where it does not work @@ -157,40 +166,21 @@ public: const char *imageFileName, DcmQueryRetrieveDatabaseStatus *status, OFBool isNew = OFTrue ); - - /** initiate FIND operation using the given SOP class UID (which identifies - * the query model) and DICOM dataset containing find request identifiers. - * @param SOPClassUID SOP class UID of query service, identifies Q/R model - * @param findRequestIdentifiers dataset containing request identifiers (i.e., the query) - * The caller retains responsibility for destroying the - * findRequestIdentifiers when no longer needed. - * @param status pointer to DB status object in which a DIMSE status code - * suitable for use with the C-FIND-RSP message is set. Status will be - * PENDING if any FIND responses will be generated or SUCCESS if no FIND responses will - * be generated (SUCCESS indicates the completion of a operation), or - * another status code upon failure. - * @return EC_Normal upon normal completion, or some other OFCondition code upon failure. + + /** @copydoc DcmQueryRetrieveDatabaseHandle::startFindRequest() */ OFCondition startFindRequest( const char *SOPClassUID, DcmDataset *findRequestIdentifiers, DcmQueryRetrieveDatabaseStatus *status); - - /** return the next available FIND response as a new DICOM dataset. - * @param findResponseIdentifiers DICOM dataset returned in this parameter. - * The caller is responsible for destroying the findResponseIdentifiers - * when no longer needed. - * @param status pointer to DB status object in which a DIMSE status code - * suitable for use with the C-FIND-RSP message is set. Status will be - * PENDING if more FIND responses will be generated or SUCCESS if no more - * FIND responses will be generated (SUCCESS indicates the completion of - * a operation), or another status code upon failure. - * @return EC_Normal upon normal completion, or some other OFCondition code upon failure. + + /** @copydoc DcmQueryRetrieveDatabaseHandle::nextFindResponse() */ OFCondition nextFindResponse( DcmDataset **findResponseIdentifiers, - DcmQueryRetrieveDatabaseStatus *status); - + DcmQueryRetrieveDatabaseStatus *status, + const DcmQueryRetrieveCharacterSetOptions& characterSetOptions); + /** cancel the ongoing FIND request, stop and reset every running operation * associated with this request, delete existing temporary files. * @param status pointer to DB status object in which a DIMSE status code @@ -346,17 +336,35 @@ public: private: + /** a private helper class that performs character set conversions on the fly + * (if necessary) before matching. + */ + class CharsetConsideringMatcher; + + /** Determine if a character set is not compatible to UTF-8, i.e.\ if it is + * not UTF-8 or ASCII. + * @param characterSet the character set to inspect. + * @return OFTrue if the character set is neither ASCII nor UTF-8, OFFalse + * otherwise. + */ + static OFBool isConversionToUTF8Necessary(const OFString& characterSet); + + /** Determine if data in the source character set must be converted to + * be compatible to the given destination character set. + * @param sourceCharacterSet the character set the data is encoded in. + * @param destinationCharacterSet the character set that is requested, + * e.g. the character set that the SCU understands. + * @return OFTrue if the source character set is not equal to and not a + * subset of the destination character set, OFFalse otherwise. + */ + static OFBool isConversionNecessary(const OFString& sourceCharacterSet, + const OFString& destinationCharacterSet); + OFCondition removeDuplicateImage( const char *SOPInstanceUID, const char *StudyInstanceUID, StudyDescRecord *pStudyDesc, const char *newImageFileName); int deleteOldestStudy(StudyDescRecord *pStudyDesc); OFCondition deleteOldestImages(StudyDescRecord *pStudyDesc, int StudyNum, char *StudyUID, long RequiredSize); - int matchDate (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); - int matchTime (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); - int matchUID (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); - int matchStrings (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); - int matchOther (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); - int dbmatch (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt); void makeResponseList(DB_Private_Handle *phandle, IdxRecord *idxRec); int matchStudyUIDInStudyDesc (StudyDescRecord *pStudyDesc, char *StudyUID, int maxStudiesAllowed); OFCondition checkupinStudyDesc(StudyDescRecord *pStudyDesc, char *StudyUID, long imageSize); @@ -366,7 +374,8 @@ private: IdxRecord *idxRec, DB_LEVEL level, DB_LEVEL infLevel, - int *match); + int *match, + CharsetConsideringMatcher& dbmatch); OFCondition testFindRequestList ( DB_ElementList *findRequestList, diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h index 956c1d93..e9a019a1 100644 --- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h +++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -24,10 +24,12 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/ofstd/ofoption.h" #include "dcmtk/dcmnet/dicom.h" #include "dcmtk/dcmdata/dcdatset.h" #include "dcmtk/dcmdata/dcuid.h" #include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcspchrs.h" #include "dcmtk/dcmqrdb/dcmqrdbi.h" BEGIN_EXTERN_C @@ -62,23 +64,6 @@ enum DB_QUERY_CLASS PATIENT_STUDY }; -/** types of database keys - */ -enum DB_KEY_CLASS -{ - /// a date entry - DATE_CLASS, - /// a time entry - TIME_CLASS, - /// a UID entry - UID_CLASS, - /// a string entry - STRING_CLASS, - /// an entry not belonging to any other class - OTHER_CLASS -}; - - /** Level Strings */ @@ -102,13 +87,13 @@ enum DB_KEY_CLASS #define FL_MAX_LENGTH 32 /* FLoating point single */ #define FD_MAX_LENGTH 64 /* Floating point Double */ #define IS_MAX_LENGTH 96 /* Integer String */ -#define LO_MAX_LENGTH 64 /* Long String */ -#define LT_MAX_LENGTH 10240 /* Long Text */ -#define PN_MAX_LENGTH 64 /* Person Name */ -#define SH_MAX_LENGTH 16 /* Short String */ +#define LO_MAX_LENGTH 256 /* Long String */ +#define LT_MAX_LENGTH 40960 /* Long Text */ +#define PN_MAX_LENGTH 256 /* Person Name */ +#define SH_MAX_LENGTH 64 /* Short String */ #define SL_MAX_LENGTH 32 /* Signed Long */ #define SS_MAX_LENGTH 16 /* Signed Short */ -#define ST_MAX_LENGTH 1024 /* Short Text */ +#define ST_MAX_LENGTH 4096 /* Short Text */ #define TM_MAX_LENGTH 128 /* Time */ #define UI_MAX_LENGTH 64 /* Unique Identifier */ #define UL_MAX_LENGTH 32 /* Unsigned Long */ @@ -123,6 +108,34 @@ enum DB_KEY_CLASS #define SIZEOF_IDXRECORD (sizeof (IdxRecord)) #define SIZEOF_STUDYDESC (sizeof (StudyDescRecord) * MAX_MAX_STUDIES) +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + +struct DCMTK_DCMQRDB_EXPORT DB_SerializedTagKey +{ + inline DB_SerializedTagKey() {} + inline DB_SerializedTagKey(const DcmTagKey& rhs) { *this = rhs; } + inline DB_SerializedTagKey& operator=(const DcmTagKey& tk) { key[0] = tk.getGroup(); key[1] = tk.getElement(); return *this; } + inline operator DcmTagKey() const { return DcmTagKey( key[0], key[1] ); } + inline bool operator==(const DB_SerializedTagKey& rhs) const { return key[0] == rhs.key[0] && key[1] == rhs.key[1]; } + Uint16 key[2]; +}; + +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + +struct DCMTK_DCMQRDB_EXPORT DB_SerializedCharPtr +{ + inline DB_SerializedCharPtr(char* p) { ptr.p = p; } + inline DB_SerializedCharPtr& operator=(char* p) { ptr.p = p; return *this; } + inline operator char*() const { return ptr.p; } + union + { + char* p; + Uint64 placeholder; + } ptr ; +}; + +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + /** this class provides a primitive interface for handling a flat DICOM element, * similar to DcmElement, but only for use within the database module */ @@ -133,13 +146,13 @@ public: DB_SmallDcmElmt(); /// pointer to the value field - char* PValueField ; + DB_SerializedCharPtr PValueField ; /// value length in bytes Uint32 ValueLength ; /// attribute tag - DcmTagKey XTag ; + DB_SerializedTagKey XTag ; private: /// private undefined copy constructor @@ -148,13 +161,15 @@ private: DB_SmallDcmElmt& operator=(const DB_SmallDcmElmt& copy); }; +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + /** this class provides a primitive interface for handling a list of flat DICOM elements, * similar to DcmItem, but only for use within the database module */ struct DCMTK_DCMQRDB_EXPORT DB_ElementList { /// default constructor - DB_ElementList(): elem(), next(NULL) {} + DB_ElementList(): elem(), next(NULL), utf8Value() {} /// current list element DB_SmallDcmElmt elem ; @@ -162,6 +177,9 @@ struct DCMTK_DCMQRDB_EXPORT DB_ElementList /// pointer to next in list struct DB_ElementList *next ; + /// UTF-8 cache + OFoptional utf8Value ; + private: /// private undefined copy constructor DB_ElementList(const DB_ElementList& copy); @@ -169,6 +187,8 @@ private: DB_ElementList& operator=(const DB_ElementList& copy); }; +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + struct DCMTK_DCMQRDB_EXPORT DB_UidList { char *patient ; @@ -178,27 +198,34 @@ struct DCMTK_DCMQRDB_EXPORT DB_UidList struct DB_UidList *next ; }; +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + struct DCMTK_DCMQRDB_EXPORT DB_CounterList { int idxCounter ; struct DB_CounterList *next ; }; +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + struct DCMTK_DCMQRDB_EXPORT DB_FindAttr { DcmTagKey tag ; DB_LEVEL level ; DB_KEY_TYPE keyAttr ; - DB_KEY_CLASS keyClass ; /* to passify some C++ compilers */ - DB_FindAttr(const DcmTagKey& t, DB_LEVEL l, DB_KEY_TYPE kt, DB_KEY_CLASS kc) - : tag(t), level(l), keyAttr(kt), keyClass(kc) { } + DB_FindAttr(const DcmTagKey& t, DB_LEVEL l, DB_KEY_TYPE kt) + : tag(t), level(l), keyAttr(kt) { } }; +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + struct DCMTK_DCMQRDB_EXPORT DB_Private_Handle { int pidx ; + OFString findRequestCharacterSet ; + DcmSpecificCharacterSet findRequestConverter ; DB_ElementList *findRequestList ; DB_ElementList *findResponseList ; DB_LEVEL queryLevel ; @@ -214,6 +241,8 @@ struct DCMTK_DCMQRDB_EXPORT DB_Private_Handle DB_Private_Handle() : pidx(0) + , findRequestCharacterSet() + , findRequestConverter() , findRequestList(NULL) , findResponseList(NULL) , queryLevel(STUDY_LEVEL) @@ -230,6 +259,8 @@ struct DCMTK_DCMQRDB_EXPORT DB_Private_Handle } }; +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + /** this struct defines the structure of each "Study Record" in the index.dat * file maintained by this module. A Study Record is a direct binary copy * of an instance of this struct. @@ -240,20 +271,22 @@ struct DCMTK_DCMQRDB_EXPORT StudyDescRecord char StudyInstanceUID [UI_MAX_LENGTH+1] ; /// combined size (in bytes) of all images of this study in the database - long StudySize ; + Uint32 StudySize ; /// timestamp for last update of this study. Format: output of time(2) converted to double. double LastRecordedDate ; /// number of images of this study in the database - int NumberofRegistratedImages ; + Uint32 NumberofRegistratedImages ; }; +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ + struct DCMTK_DCMQRDB_EXPORT ImagesofStudyArray { - int idxCounter ; + Uint32 idxCounter ; double RecordedDate ; - long ImageSize ; + Uint32 ImageSize ; }; @@ -308,9 +341,12 @@ struct DCMTK_DCMQRDB_EXPORT ImagesofStudyArray #define RECORDIDX_OperatorsName 38 #define RECORDIDX_PerformingPhysicianName 39 #define RECORDIDX_PresentationLabel 40 +#define RECORDIDX_IssuerOfPatientID 41 +#define RECORDIDX_SpecificCharacterSet 42 -#define NBPARAMETERS 41 +#define NBPARAMETERS 43 +/* ENSURE THAT DBVERSION IS INCREMENTED WHENEVER ONE OF THESE STRUCTS IS MODIFIED */ /** this class manages an instance entry of the index file. * Each instance/image record within the index.dat file is @@ -324,7 +360,7 @@ struct DCMTK_DCMQRDB_EXPORT IdxRecord char filename [DBC_MAXSTRING+1] ; char SOPClassUID [UI_MAX_LENGTH+1] ; double RecordedDate ; - int ImageSize ; + Uint32 ImageSize ; DB_SmallDcmElmt param [NBPARAMETERS] ; @@ -374,12 +410,17 @@ struct DCMTK_DCMQRDB_EXPORT IdxRecord char OperatorsName [PN_MAX_LENGTH+1] ; char PerformingPhysicianName [PN_MAX_LENGTH+1] ; char PresentationLabel [CS_LABEL_MAX_LENGTH+1] ; + char IssuerOfPatientID [LO_MAX_LENGTH+1] ; - DVIFhierarchyStatus hstat; + char hstat; // Not related to any particular DICOM attribute ! char InstanceDescription [DESCRIPTION_MAX_LENGTH+1] ; + // Specific Character Set, support for VM ~ 8 (depending on the + // actual length of the used DTs) + char SpecificCharacterSet [CS_MAX_LENGTH*8+1] ; + private: /* undefined */ IdxRecord(const IdxRecord& copy); /* undefined */ IdxRecord& operator=(const IdxRecord& copy); diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrtis.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrtis.h index 893ee3ba..7583cd1a 100644 --- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrtis.h +++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqrtis.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -238,6 +238,7 @@ private: OFBool TI_dbReadable(const char *dbTitle); time_t TI_dbModifyTime(const char *dbTitle); OFCondition addPresentationContexts(T_ASC_Parameters *params); + void selectDestinationCharacterSet(OFString& destinationCharacterSet); OFBool findDBPeerTitles( const char *configFileName, diff --git a/dcmqrdb/libsrc/Makefile.dep b/dcmqrdb/libsrc/Makefile.dep index 77faaec9..e10df3e2 100644 --- a/dcmqrdb/libsrc/Makefile.dep +++ b/dcmqrdb/libsrc/Makefile.dep @@ -355,19 +355,25 @@ dcmqrcnf.o: dcmqrcnf.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmqrdb/qrdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h dcmqrdbi.o: dcmqrdbi.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../include/dcmtk/dcmqrdb/dcmqrdbs.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmqrdb/qrdefine.h ../include/dcmtk/dcmqrdb/dcmqrdbi.h \ - ../include/dcmtk/dcmqrdb/dcmqrdba.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/dcmqrdb/dcmqrdbs.h ../include/dcmtk/dcmqrdb/qrdefine.h \ + ../include/dcmtk/dcmqrdb/dcmqrdbi.h ../include/dcmtk/dcmqrdb/dcmqrdba.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ @@ -402,12 +408,7 @@ dcmqrdbi.o: dcmqrdbi.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../../ofstd/include/dcmtk/ofstd/ofstd.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h \ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ ../../dcmnet/include/dcmtk/dcmnet/dimse.h \ ../../dcmnet/include/dcmtk/dcmnet/lst.h \ @@ -429,11 +430,20 @@ dcmqrdbi.o: dcmqrdbi.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/offname.h \ ../include/dcmtk/dcmqrdb/dcmqrcnf.h ../include/dcmtk/dcmqrdb/dcmqropt.h \ ../include/dcmtk/dcmqrdb/dcmqridx.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcspchrs.h \ + ../../ofstd/include/dcmtk/ofstd/ofchrenc.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../dcmnet/include/dcmtk/dcmnet/diutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcelem.h + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmatch.h dcmqrdbs.o: dcmqrdbs.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmqrdb/dcmqrdbs.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ diff --git a/dcmqrdb/libsrc/dcmqrcbf.cc b/dcmqrdb/libsrc/dcmqrcbf.cc index 09a81c15..091e3d85 100644 --- a/dcmqrdb/libsrc/dcmqrcbf.cc +++ b/dcmqrdb/libsrc/dcmqrcbf.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2010, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -60,7 +60,7 @@ void DcmQueryRetrieveFindContext::callbackHandler( } if (DICOM_PENDING_STATUS(dbStatus.status())) { - dbcond = dbHandle.nextFindResponse(responseIdentifiers, &dbStatus); + dbcond = dbHandle.nextFindResponse(responseIdentifiers, &dbStatus, characterSetOptions); if (dbcond.bad()) { DCMQRDB_ERROR("findSCP: Database: nextFindResponse Failed (" << DU_cfindStatusString(dbStatus.status()) << "):"); diff --git a/dcmqrdb/libsrc/dcmqrcbm.cc b/dcmqrdb/libsrc/dcmqrcbm.cc index 3d0a6cd3..773e4bea 100644 --- a/dcmqrdb/libsrc/dcmqrcbm.cc +++ b/dcmqrdb/libsrc/dcmqrcbm.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -630,6 +630,21 @@ OFCondition DcmQueryRetrieveMoveContext::addAllStoragePresentationContexts(T_ASC transferSyntaxes[0] = UID_MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax; numTransferSyntaxes = 1; break; + case EXS_MPEG4HighProfileLevel4_2_For2DVideo: + /* we only propose MPEG4 HP/L4.2 for 2D Videos since we don't want to decompress */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax; + numTransferSyntaxes = 1; + break; + case EXS_MPEG4HighProfileLevel4_2_For3DVideo: + /* we only propose MPEG4 HP/L4.2 for 3D Videos since we don't want to decompress */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax; + numTransferSyntaxes = 1; + break; + case EXS_MPEG4StereoHighProfileLevel4_2: + /* we only propose MPEG4 Stereo HP/L4.2 since we don't want to decompress */ + transferSyntaxes[0] = UID_MPEG4StereoHighProfileLevel4_2TransferSyntax; + numTransferSyntaxes = 1; + break; case EXS_RLELossless: /* we prefer RLE Lossless */ transferSyntaxes[0] = UID_RLELosslessTransferSyntax; diff --git a/dcmqrdb/libsrc/dcmqrcnf.cc b/dcmqrdb/libsrc/dcmqrcnf.cc index c30424bf..2a5a2b8f 100644 --- a/dcmqrdb/libsrc/dcmqrcnf.cc +++ b/dcmqrdb/libsrc/dcmqrcnf.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2011, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -31,6 +31,7 @@ #include "dcmtk/ofstd/ofstdinc.h" #include "dcmtk/ofstd/ofcmdln.h" #include "dcmtk/ofstd/ofmap.h" +#include "dcmtk/ofstd/ofchrenc.h" OFLogger DCM_dcmqrdbLogger = OFLog::getLogger("dcmtk.dcmqrdb"); @@ -62,6 +63,48 @@ static void freeConfigHostEntry(OFMap &pointersToFree, str free(entry->Peers); } +DcmQueryRetrieveCharacterSetOptions::DcmQueryRetrieveCharacterSetOptions() +: characterSet() +, flags(0) +, conversionFlags(0) +{ + +} + +OFBool DcmQueryRetrieveCharacterSetOptions::parseOptions(const char* mnemonic, char* valueptr) +{ + struct RAIIFree + { + RAIIFree(char* ptr) : ptr(ptr) {} + ~RAIIFree() {free(ptr);} + char* ptr; + }; + if (strcmp(mnemonic,"SpecificCharacterSet") != 0) + return OFFalse; + characterSet.clear(); + flags = Configured; + conversionFlags = 0; + for (char* c = DcmQueryRetrieveConfig::parsevalues(&valueptr); c; + c = DcmQueryRetrieveConfig::parsevalues(&valueptr)) { + // ensure free is called when this scope is left + RAIIFree cleanup(c); + if (!strcmp(c, "override")) { + flags |= Override; + } else if(!strcmp(c, "fallback")) { + flags |= Fallback; + } else if(!strcmp(c, "abort")) { + conversionFlags |= OFCharacterEncoding::AbortTranscodingOnIllegalSequence; + } else if(!strcmp(c, "discard")) { + conversionFlags |= OFCharacterEncoding::DiscardIllegalSequences; + } else if(!strcmp(c, "transliterate")) { + conversionFlags |= OFCharacterEncoding::TransliterateIllegalSequences; + } else { + characterSet = c; + } + } + return OFTrue; +} + DcmQueryRetrieveConfig::~DcmQueryRetrieveConfig() { // There can be more than one DcmQueryRetrieveConfigPeer which points to the @@ -285,15 +328,14 @@ int DcmQueryRetrieveConfig::readConfigLines(FILE *cnffp) int lineno = 0, /* line counter */ error = 0; /* error flag */ char rcline[512], /* line in configuration file */ - mnemonic[64], /* mnemonic in line */ - value[256], /* parameter value */ + mnemonic[512], /* mnemonic in line */ + value[512], /* parameter value */ *valueptr; /* pointer to value list */ char *c; - while (!feof(cnffp)) { - fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */ + // read all lines from configuration file + while (fgets(rcline, sizeof(rcline), cnffp)) { lineno++; - if (feof(cnffp)) continue; if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13) continue; /* comment or blank line */ @@ -346,6 +388,10 @@ int DcmQueryRetrieveConfig::readConfigLines(FILE *cnffp) { // ignore this entry which was needed for ctndisp } + else if (characterSetOptions_.parseOptions(mnemonic, valueptr)) + { + // already handled by parseOptions(), nothing else to do + } else if (!strcmp("HostTable", mnemonic)) { sscanf(valueptr, "%s", value); if (!strcmp("BEGIN", value)) { @@ -357,7 +403,7 @@ int DcmQueryRetrieveConfig::readConfigLines(FILE *cnffp) error = 1; } else { - panic("Unknown HostTable status \"%s\" in configuartion file, line %d", value, lineno); + panic("Unknown HostTable status \"%s\" in configuration file, line %d", value, lineno); error = 1; } } @@ -372,7 +418,7 @@ int DcmQueryRetrieveConfig::readConfigLines(FILE *cnffp) error = 1; } else { - panic("Unknown VendorTable status \"%s\" in configuartion file, line %d", value, lineno); + panic("Unknown VendorTable status \"%s\" in configuration file, line %d", value, lineno); error = 1; } } @@ -387,7 +433,7 @@ int DcmQueryRetrieveConfig::readConfigLines(FILE *cnffp) error = 1; } else { - panic("Unknown AETable status \"%s\" in configuartion file, line %d", value, lineno); + panic("Unknown AETable status \"%s\" in configuration file, line %d", value, lineno); error = 1; } } @@ -407,15 +453,14 @@ int DcmQueryRetrieveConfig::readHostTable(FILE *cnffp, int *lineno) end = 0, /* end flag */ noOfPeers; /* number of peers for entry */ char rcline[512], /* line in configuration file */ - mnemonic[64], /* mnemonic in line */ - value[256], /* parameter value */ + mnemonic[512], /* mnemonic in line */ + value[512], /* parameter value */ *lineptr; /* pointer to line */ DcmQueryRetrieveConfigHostEntry *helpentry; - while (!feof(cnffp)) { - fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */ + // read certain lines from configuration file + while (fgets(rcline, sizeof(rcline), cnffp)) { (*lineno)++; - if (feof(cnffp)) continue; if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13) continue; /* comment or blank line */ @@ -463,15 +508,14 @@ int DcmQueryRetrieveConfig::readVendorTable(FILE *cnffp, int *lineno) end = 0, /* end flag */ noOfPeers; /* number of peers for entry */ char rcline[512], /* line in configuration file */ - mnemonic[64], /* mnemonic in line */ - value[256], /* parameter value */ + mnemonic[512], /* mnemonic in line */ + value[512], /* parameter value */ *lineptr; /* pointer to line */ DcmQueryRetrieveConfigHostEntry *helpentry; - while (!feof(cnffp)) { - fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */ + // read certain lines from configuration file + while (fgets(rcline, sizeof(rcline), cnffp)) { (*lineno)++; - if (feof(cnffp)) continue; if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13) continue; /* comment or blank line */ @@ -519,15 +563,14 @@ int DcmQueryRetrieveConfig::readAETable(FILE *cnffp, int *lineno) end = 0, /* end flag */ noOfAEEntries = 0; /* number of AE entries */ char rcline[512], /* line in configuration file */ - mnemonic[64], /* mnemonic in line */ - value[256], /* parameter value */ + mnemonic[512], /* mnemonic in line */ + value[512], /* parameter value */ *lineptr; /* pointer to line */ DcmQueryRetrieveConfigAEEntry *helpentry; - while (!feof(cnffp)) { - fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */ + // read certain lines from configuration file + while (fgets(rcline, sizeof(rcline), cnffp)) { (*lineno)++; - if (feof(cnffp)) continue; if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13) continue; /* comment or blank line */ @@ -576,7 +619,7 @@ DcmQueryRetrieveConfigQuota *DcmQueryRetrieveConfig::parseQuota(char **valuehand { int studies; char *helpvalue, - helpval[20]; + helpval[512]; DcmQueryRetrieveConfigQuota *helpquota; if ((helpquota = (DcmQueryRetrieveConfigQuota *)malloc(sizeof(DcmQueryRetrieveConfigQuota))) == NULL) @@ -597,7 +640,7 @@ DcmQueryRetrieveConfigPeer *DcmQueryRetrieveConfig::parsePeers(char **valuehandl char *valueptr = *valuehandle; helpvalue = parsevalues(valuehandle); - if (!strcmp("ANY", helpvalue)) { /* keywork ANY used */ + if (!strcmp("ANY", helpvalue)) { /* keyword ANY used */ free(helpvalue); *peers = -1; return((DcmQueryRetrieveConfigPeer *) 0); @@ -1056,3 +1099,13 @@ const char *DcmQueryRetrieveConfig::getGroupName() const { return GroupName_.c_str(); } + +const DcmQueryRetrieveCharacterSetOptions& DcmQueryRetrieveConfig::getCharacterSetOptions() const +{ + return characterSetOptions_; +} + +DcmQueryRetrieveCharacterSetOptions& DcmQueryRetrieveConfig::getCharacterSetOptions() +{ + return characterSetOptions_; +} diff --git a/dcmqrdb/libsrc/dcmqrdbi.cc b/dcmqrdb/libsrc/dcmqrdbi.cc index babcdacf..072aaa6e 100644 --- a/dcmqrdb/libsrc/dcmqrdbi.cc +++ b/dcmqrdb/libsrc/dcmqrdbi.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2016, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -37,6 +37,7 @@ END_EXTERN_C #define INCLUDE_CCTYPE #define INCLUDE_CSTDARG #include "dcmtk/ofstd/ofstdinc.h" +#include "dcmtk/ofstd/ofstd.h" #include "dcmtk/dcmqrdb/dcmqrdbs.h" #include "dcmtk/dcmqrdb/dcmqrdbi.h" @@ -46,7 +47,7 @@ END_EXTERN_C #include "dcmtk/dcmqrdb/dcmqridx.h" #include "dcmtk/dcmnet/diutil.h" #include "dcmtk/dcmdata/dcfilefo.h" -#include "dcmtk/ofstd/ofstd.h" +#include "dcmtk/dcmdata/dcmatch.h" /* ========================= static data ========================= */ @@ -68,40 +69,41 @@ END_EXTERN_C ***/ static const DB_FindAttr TbFindAttr [] = { - DB_FindAttr( DCM_PatientBirthDate, PATIENT_LEVEL, OPTIONAL_KEY, DATE_CLASS ), - DB_FindAttr( DCM_PatientSex, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_PatientName, PATIENT_LEVEL, REQUIRED_KEY, STRING_CLASS ), - DB_FindAttr( DCM_PatientID, PATIENT_LEVEL, UNIQUE_KEY, STRING_CLASS ), - DB_FindAttr( DCM_PatientBirthTime, PATIENT_LEVEL, OPTIONAL_KEY, TIME_CLASS ), - DB_FindAttr( DCM_OtherPatientIDs, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_OtherPatientNames, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_EthnicGroup, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_PatientComments, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_NumberOfPatientRelatedStudies, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_NumberOfPatientRelatedSeries, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_NumberOfPatientRelatedInstances, PATIENT_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_StudyDate, STUDY_LEVEL, REQUIRED_KEY, DATE_CLASS ), - DB_FindAttr( DCM_StudyTime, STUDY_LEVEL, REQUIRED_KEY, TIME_CLASS ), - DB_FindAttr( DCM_StudyID, STUDY_LEVEL, REQUIRED_KEY, STRING_CLASS ), - DB_FindAttr( DCM_AccessionNumber, STUDY_LEVEL, REQUIRED_KEY, STRING_CLASS ), - DB_FindAttr( DCM_ReferringPhysicianName, STUDY_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_StudyDescription, STUDY_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_NameOfPhysiciansReadingStudy, STUDY_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_StudyInstanceUID, STUDY_LEVEL, UNIQUE_KEY, UID_CLASS ), - DB_FindAttr( DCM_RETIRED_OtherStudyNumbers, STUDY_LEVEL, OPTIONAL_KEY, OTHER_CLASS ), - DB_FindAttr( DCM_AdmittingDiagnosesDescription, STUDY_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_PatientAge, STUDY_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_PatientSize, STUDY_LEVEL, OPTIONAL_KEY, OTHER_CLASS ), - DB_FindAttr( DCM_PatientWeight, STUDY_LEVEL, OPTIONAL_KEY, OTHER_CLASS ), - DB_FindAttr( DCM_Occupation, STUDY_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_AdditionalPatientHistory, STUDY_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_NumberOfStudyRelatedSeries, STUDY_LEVEL, OPTIONAL_KEY, OTHER_CLASS ), - DB_FindAttr( DCM_NumberOfStudyRelatedInstances, STUDY_LEVEL, OPTIONAL_KEY, OTHER_CLASS ), - DB_FindAttr( DCM_SeriesNumber, SERIE_LEVEL, REQUIRED_KEY, OTHER_CLASS ), - DB_FindAttr( DCM_SeriesInstanceUID, SERIE_LEVEL, UNIQUE_KEY, UID_CLASS ), - DB_FindAttr( DCM_Modality, SERIE_LEVEL, OPTIONAL_KEY, STRING_CLASS ), - DB_FindAttr( DCM_InstanceNumber, IMAGE_LEVEL, REQUIRED_KEY, OTHER_CLASS ), - DB_FindAttr( DCM_SOPInstanceUID, IMAGE_LEVEL, UNIQUE_KEY, UID_CLASS ) + DB_FindAttr( DCM_PatientBirthDate, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_PatientSex, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_PatientName, PATIENT_LEVEL, REQUIRED_KEY ), + DB_FindAttr( DCM_PatientID, PATIENT_LEVEL, UNIQUE_KEY ), + DB_FindAttr( DCM_PatientBirthTime, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_OtherPatientIDs, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_OtherPatientNames, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_EthnicGroup, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_PatientComments, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_NumberOfPatientRelatedStudies, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_NumberOfPatientRelatedSeries, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_NumberOfPatientRelatedInstances, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_IssuerOfPatientID, PATIENT_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_StudyDate, STUDY_LEVEL, REQUIRED_KEY ), + DB_FindAttr( DCM_StudyTime, STUDY_LEVEL, REQUIRED_KEY ), + DB_FindAttr( DCM_StudyID, STUDY_LEVEL, REQUIRED_KEY ), + DB_FindAttr( DCM_AccessionNumber, STUDY_LEVEL, REQUIRED_KEY ), + DB_FindAttr( DCM_ReferringPhysicianName, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_StudyDescription, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_NameOfPhysiciansReadingStudy, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_StudyInstanceUID, STUDY_LEVEL, UNIQUE_KEY ), + DB_FindAttr( DCM_RETIRED_OtherStudyNumbers, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_AdmittingDiagnosesDescription, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_PatientAge, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_PatientSize, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_PatientWeight, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_Occupation, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_AdditionalPatientHistory, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_NumberOfStudyRelatedSeries, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_NumberOfStudyRelatedInstances, STUDY_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_SeriesNumber, SERIE_LEVEL, REQUIRED_KEY ), + DB_FindAttr( DCM_SeriesInstanceUID, SERIE_LEVEL, UNIQUE_KEY ), + DB_FindAttr( DCM_Modality, SERIE_LEVEL, OPTIONAL_KEY ), + DB_FindAttr( DCM_InstanceNumber, IMAGE_LEVEL, REQUIRED_KEY ), + DB_FindAttr( DCM_SOPInstanceUID, IMAGE_LEVEL, UNIQUE_KEY ) }; /**** The NbFindAttr variable contains the length of the TbFindAttr table @@ -318,6 +320,12 @@ static void DB_IdxInitRecord (IdxRecord *idx, int linksOnly) idx -> param[RECORDIDX_PresentationLabel]. XTag = DCM_ContentLabel ; idx -> param[RECORDIDX_PresentationLabel]. ValueLength = CS_LABEL_MAX_LENGTH ; idx -> PresentationLabel[0] = '\0' ; + idx -> param[RECORDIDX_IssuerOfPatientID]. XTag = DCM_IssuerOfPatientID ; + idx -> param[RECORDIDX_IssuerOfPatientID]. ValueLength = LO_MAX_LENGTH ; + idx -> IssuerOfPatientID[0] = '\0' ; + idx -> param[RECORDIDX_SpecificCharacterSet]. XTag = DCM_SpecificCharacterSet ; + idx -> param[RECORDIDX_SpecificCharacterSet]. ValueLength = CS_MAX_LENGTH*8 ; + idx -> SpecificCharacterSet[0] = '\0' ; } idx -> param[RECORDIDX_PatientBirthDate]. PValueField = (char *)idx -> PatientBirthDate ; idx -> param[RECORDIDX_PatientSex]. PValueField = (char *)idx -> PatientSex ; @@ -360,6 +368,8 @@ static void DB_IdxInitRecord (IdxRecord *idx, int linksOnly) idx -> param[RECORDIDX_OperatorsName ]. PValueField = (char *) idx -> OperatorsName ; idx -> param[RECORDIDX_PerformingPhysicianName]. PValueField = (char *) idx -> PerformingPhysicianName ; idx -> param[RECORDIDX_PresentationLabel]. PValueField = (char *) idx -> PresentationLabel ; + idx -> param[RECORDIDX_IssuerOfPatientID]. PValueField = (char *) idx -> IssuerOfPatientID ; + idx -> param[RECORDIDX_SpecificCharacterSet]. PValueField = (char *) idx -> SpecificCharacterSet ; } /****************************** @@ -424,9 +434,9 @@ static long DB_lseek(int fildes, long offset, int whence) } /* print an alert if we are seeking beyond the end of file. - * ignore when file is empty + * ignore when file is empty or contains only the version information. */ - if ((endpos > 0) && (pos > endpos)) { + if ((endpos > DBHEADERSIZE) && (pos > endpos)) { DCMQRDB_ERROR("*** DB ALERT: attempt to seek beyond end of file" << OFendl << " offset=" << offset << " filesize=" << endpos); } @@ -444,7 +454,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxRead (int idx, IdxRecord /*** Goto the right index in file **/ - DB_lseek (handle_ -> pidx, (long) (SIZEOF_STUDYDESC + idx * SIZEOF_IDXRECORD), SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE + SIZEOF_STUDYDESC + idx * SIZEOF_IDXRECORD), SEEK_SET) ; /*** Read the record **/ @@ -452,7 +462,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxRead (int idx, IdxRecord if (read (handle_ -> pidx, (char *) idxRec, SIZEOF_IDXRECORD) != SIZEOF_IDXRECORD) return (QR_EC_IndexDatabaseError) ; - DB_lseek (handle_ -> pidx, 0L, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; /*** Initialize record links **/ @@ -478,7 +488,7 @@ static OFCondition DB_IdxAdd (DB_Private_Handle *phandle, int *idx, IdxRecord *i *idx = 0 ; - DB_lseek (phandle -> pidx, (long) SIZEOF_STUDYDESC, SEEK_SET) ; + DB_lseek (phandle -> pidx, OFstatic_cast(long, DBHEADERSIZE + SIZEOF_STUDYDESC), SEEK_SET) ; while (read (phandle -> pidx, (char *) &rec, SIZEOF_IDXRECORD) == SIZEOF_IDXRECORD) { if (rec. filename [0] == '\0') break ; @@ -488,14 +498,14 @@ static OFCondition DB_IdxAdd (DB_Private_Handle *phandle, int *idx, IdxRecord *i /*** We have either found a free place or we are at the end of file. **/ - DB_lseek (phandle -> pidx, (long) (SIZEOF_STUDYDESC + (*idx) * SIZEOF_IDXRECORD), SEEK_SET) ; + DB_lseek (phandle -> pidx, OFstatic_cast(long, DBHEADERSIZE + SIZEOF_STUDYDESC + (*idx) * SIZEOF_IDXRECORD), SEEK_SET) ; if (write (phandle -> pidx, (char *) idxRec, SIZEOF_IDXRECORD) != SIZEOF_IDXRECORD) cond = QR_EC_IndexDatabaseError ; else cond = EC_Normal ; - DB_lseek (phandle -> pidx, 0L, SEEK_SET) ; + DB_lseek (phandle -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; return cond ; } @@ -508,10 +518,10 @@ static OFCondition DB_IdxAdd (DB_Private_Handle *phandle, int *idx, IdxRecord *i OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_StudyDescChange(StudyDescRecord *pStudyDesc) { OFCondition cond = EC_Normal; - DB_lseek (handle_ -> pidx, 0L, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; if (write (handle_ -> pidx, (char *) pStudyDesc, SIZEOF_STUDYDESC) != SIZEOF_STUDYDESC) cond = QR_EC_IndexDatabaseError; - DB_lseek (handle_ -> pidx, 0L, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; return cond ; } @@ -521,7 +531,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_StudyDescChange(StudyDescRec OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxInitLoop(int *idx) { - DB_lseek (handle_ -> pidx, SIZEOF_STUDYDESC, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE + SIZEOF_STUDYDESC), SEEK_SET) ; *idx = -1 ; return EC_Normal ; } @@ -535,7 +545,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxGetNext(int *idx, IdxReco { (*idx)++ ; - DB_lseek (handle_ -> pidx, SIZEOF_STUDYDESC + (long)(*idx) * SIZEOF_IDXRECORD, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE + SIZEOF_STUDYDESC + OFstatic_cast(long, *idx) * SIZEOF_IDXRECORD), SEEK_SET) ; while (read (handle_ -> pidx, (char *) idxRec, SIZEOF_IDXRECORD) == SIZEOF_IDXRECORD) { if (idxRec -> filename [0] != '\0') { DB_IdxInitRecord (idxRec, 1) ; @@ -545,7 +555,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxGetNext(int *idx, IdxReco (*idx)++ ; } - DB_lseek (handle_ -> pidx, 0L, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; return QR_EC_IndexDatabaseError ; } @@ -559,11 +569,11 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxGetNext(int *idx, IdxReco OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_GetStudyDesc (StudyDescRecord *pStudyDesc) { - DB_lseek (handle_ -> pidx, 0L, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; if ( read (handle_ -> pidx, (char *) pStudyDesc, SIZEOF_STUDYDESC) == SIZEOF_STUDYDESC ) return EC_Normal ; - DB_lseek (handle_ -> pidx, 0L, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; return QR_EC_IndexDatabaseError ; } @@ -579,7 +589,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxRemove(int idx) IdxRecord rec ; OFCondition cond = EC_Normal; - DB_lseek (handle_ -> pidx, SIZEOF_STUDYDESC + (long)idx * SIZEOF_IDXRECORD, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE + SIZEOF_STUDYDESC + OFstatic_cast(long, idx) * SIZEOF_IDXRECORD), SEEK_SET) ; DB_IdxInitRecord (&rec, 0) ; rec. filename [0] = '\0' ; @@ -588,7 +598,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::DB_IdxRemove(int idx) else cond = QR_EC_IndexDatabaseError ; - DB_lseek (handle_ -> pidx, 0L, SEEK_SET) ; + DB_lseek (handle_ -> pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET) ; return cond ; } @@ -653,41 +663,10 @@ static OFCondition DB_FreeElementList (DB_ElementList *lst) if (lst->elem.PValueField != NULL) { free ((char *) lst -> elem. PValueField); } - free (lst); + delete lst; return (cond); } - -/******************* - * Matches two strings - */ - -static int DB_StringUnify (char *pmod, char *pstr) -{ - int uni; - - if (*pmod == '\0') - return (*pstr == '\0'); - - if ( *pmod == *pstr - || (*pmod == '?' && *pstr != '\0') - ) - return (DB_StringUnify (pmod + 1, pstr + 1)); - - if (*pmod == '*') { - if ( *(pmod + 1) == '\0' ) - return (OFTrue); - while ( ( (uni = DB_StringUnify (pmod + 1, pstr)) == OFFalse ) - && (*pstr != '\0') - ) - pstr++; - return (uni); - } - else if (*pmod != *pstr) - return (OFFalse); - return OFFalse; -} - /******************* * Is the specified tag supported */ @@ -704,7 +683,6 @@ static int DB_TagSupported (DcmTagKey tag) } - /******************* * Get UID tag of a specified level */ @@ -766,153 +744,6 @@ static OFCondition DB_GetTagKeyAttr (DcmTagKey tag, DB_KEY_TYPE *keyAttr) return (QR_EC_IndexDatabaseError); } -/******************* - * Get tag key attribute of a specified tag - */ - -static OFCondition DB_GetTagKeyClass (DcmTagKey tag, DB_KEY_CLASS *keyAttr) -{ - int i; - - for (i = 0; i < NbFindAttr; i++) - if (TbFindAttr[i]. tag == tag) - break; - - if (i < NbFindAttr) { - *keyAttr = TbFindAttr[i]. keyClass; - return (EC_Normal); - } - else - return (QR_EC_IndexDatabaseError); -} - - -/******************* - * Remove spaces in a string - */ - -static void DB_RemoveSpaces (char *string) -{ - char *pc1, *pc2; - - for (pc1 = pc2 = string; *pc2; pc2++) { - if (*pc2 != ' ') { - *pc1 = *pc2; - pc1++; - } - } - *pc1 = '\0'; -} - -/******************* - * Remove leading and trailing spaces in a string - */ - -static void DB_RemoveEnclosingSpaces (char *string) -{ - char *pc1, *pc2; - - /** Find in pc2 the first non space character - ** If not found, string is empty - */ - - for (pc2 = string; (*pc2 != '\0') && (*pc2 == ' '); pc2++) /* loop with empty body */; - if (*pc2 == '\0') { - string [0] = '\0'; - return; - } - - /** Shift the string if necessary - */ - - if (pc2 != string) { - for (pc1 = string; *pc2; pc1++, pc2++) - *pc1 = *pc2; - *pc1 = '\0'; - } - - /** Skip trailing spaces - */ - - for (pc2 = string + strlen (string) - 1; *pc2 == ' '; pc2--) /* loop with empty body */; - pc2++; - *pc2 = '\0'; -} - - -/******************* - * Convert a date YYYYMMDD in a long - */ - -static long DB_DateToLong (char *date) -{ - char year [5]; - char month[3]; - char day [3]; - - strncpy (year, date, 4); - year [4] = '\0'; - strncpy (month, date + 4, 2); - month [2] = '\0'; - strncpy (day, date + 6, 2); - day [2] = '\0'; - - return ((atol(year) * 10000) + (atol(month) * 100) + atol(day)); -} - - -/******************* - * Convert a time in a double - */ - -static double DB_TimeToDouble (char *thetime) -{ - char t [20]; - char tmp [4]; - - double result = 0.; - char *pc; - - /*** Get fractional part if exists - **/ - - strcpy (t, thetime); - if ((pc = strchr (t, '.')) != NULL) { - double f; - - *pc = '\0'; - for (pc++, f = 1.; (*pc) && (isdigit (OFstatic_cast(unsigned char, *pc))); pc++) { - f /= 10.; - result += (*pc - '0') * f; - } - } - - /*** Add default values (mm ss) if necessary - **/ - - strcat (t, "0000"); - t [6] = '\0'; - - /*** Get Hours, Minutes and Seconds - **/ - - strncpy (tmp, t, 2); - tmp [3] = '\0'; - result += 3600. * OFStandard::atof(tmp); - - strncpy (tmp, t + 2, 2); - tmp [3] = '\0'; - result += 60. * OFStandard::atof(tmp); - - strncpy (tmp, t + 4, 2); - tmp [3] = '\0'; - result += OFStandard::atof(tmp); - - return result; -} - - - /*********************** * Duplicate a DICOM element * dst space is supposed provided by the caller @@ -966,318 +797,197 @@ DcmQueryRetrieveDatabaseHandle::~DcmQueryRetrieveDatabaseHandle() /* ========================= FIND ========================= */ -/************ -** Try to match Two Dates -** The first one is the "model", the second one an element -** Returns OFTrue if matching is OK, else returns OFFalse - */ - -int DcmQueryRetrieveIndexDatabaseHandle::matchDate (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) +// helper function to print 'ASCII' instead of an empty string for the value of +// Specific Character Set +static const char* characterSetName( const OFString& charset ) { - char date [DBC_MAXSTRING] ; - char modl [DBC_MAXSTRING] ; - - /*** Get elt and model data in strings - **/ - - memcpy (date, elt->PValueField, (size_t)(elt->ValueLength)) ; - date [elt->ValueLength] = '\0' ; - DB_RemoveSpaces (date) ; - - memcpy (modl, mod->PValueField, (size_t)(mod->ValueLength)) ; - modl [mod->ValueLength] = '\0' ; - DB_RemoveSpaces (modl) ; - - /*** If no '-' in date - *** return strict comparison result - **/ - - if (strchr (modl, '-') == NULL) - return (strcmp (modl, date) == 0) ; - - /*** If first char is - - **/ - - if (modl [0] == '-') { - return DB_DateToLong (date) <= DB_DateToLong (modl+1) ; - } - - /*** If last char is - - **/ - - else if (modl [strlen (modl) - 1] == '-') { - modl [strlen (modl) - 1] = '\0' ; - return DB_DateToLong (date) >= DB_DateToLong (modl) ; - } - else { - char *pc ; - long d ; - - d = DB_DateToLong (date) ; - pc = strchr (modl, '-') ; - *pc = '\0' ; - - return (d >= DB_DateToLong (modl)) && (d <= DB_DateToLong (pc+1)) ; - - } + if (charset.empty()) + return "ASCII"; + return charset.c_str(); } -/************ -** Try to match Two Times -** The first one is the "model", the second one an element -** Returns OFTrue if matching is OK, else returns OFFalse - */ - -int DcmQueryRetrieveIndexDatabaseHandle::matchTime (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) +class DcmQueryRetrieveIndexDatabaseHandle::CharsetConsideringMatcher { - char aTime [DBC_MAXSTRING] ; - char modl [DBC_MAXSTRING] ; - - /*** Get elt and model data in strings - **/ - - memcpy (aTime, elt->PValueField, (size_t)(elt->ValueLength)) ; - aTime [elt->ValueLength] = '\0' ; - DB_RemoveSpaces (aTime) ; - - memcpy (modl, mod->PValueField, (size_t)(mod->ValueLength)) ; - modl [mod->ValueLength] = '\0' ; - DB_RemoveSpaces (modl) ; - - /*** If no '-' in time - *** return strict comparison result - **/ +public: - if (strchr (modl, '-') == NULL) - return (strcmp (modl, aTime) == 0) ; - - /*** If first char is - - **/ - - if (modl [0] == '-') { - return DB_TimeToDouble (aTime) <= DB_TimeToDouble (modl+1) ; - } - - /*** If last char is - - **/ - - else if (modl [strlen (modl) - 1] == '-') { - modl [strlen (modl) - 1] = '\0' ; - return DB_TimeToDouble (aTime) >= DB_TimeToDouble (modl) ; - } - else { - char *pc ; - double t ; - - t = DB_TimeToDouble (aTime) ; - pc = strchr (modl, '-') ; - *pc = '\0' ; - - return (t >= DB_TimeToDouble (modl)) && (t <= DB_TimeToDouble (pc+1)) ; - - } -} - -/************ -** Try to match Two UID -** The first one is the "model", the second one an element -** Returns OFTrue if matching is OK, else returns OFFalse - */ - -int DcmQueryRetrieveIndexDatabaseHandle::matchUID (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) -{ - int match ; - char *uid ; - char *modl ; - char *pc ; - unsigned int length ; - - /*** Get elt and model data in strings - **/ - - uid = (char *) malloc ((size_t)(elt->ValueLength + 1)) ; - if (uid == NULL) { - return 0 ; - } - memcpy (uid, elt->PValueField, (size_t)(elt->ValueLength)) ; - uid [elt->ValueLength] = '\0' ; + // Constructor, remember references to the find request character set and converter + CharsetConsideringMatcher(DB_Private_Handle& handle) + : findRequestCharacterSet(handle.findRequestCharacterSet) + , findRequestConverter(handle.findRequestConverter) + , candidateCharacterSet() + , candidateConverter() + , isFindRequestConversionNecessary(isConversionToUTF8Necessary(findRequestCharacterSet)) + , isCandidateConversionNecessary() + , isConversionNecessary() + { - modl = (char *) malloc ((size_t)(mod->ValueLength + 1)) ; - if (modl == NULL) { - free (uid) ; - return 0 ; } - memcpy (modl, mod->PValueField, (size_t)(mod->ValueLength)) ; - modl [mod->ValueLength] = '\0' ; - - /*** If no '\' in model - *** return strict comparison result - **/ -#ifdef STRICT_COMPARE -#else - /*** Suppress Leading and Trailing spaces in - *** model and string - **/ - - DB_RemoveEnclosingSpaces (uid) ; - DB_RemoveEnclosingSpaces (modl) ; -#endif - - if (strchr (modl, '\\') == NULL) { - match = (strcmp (modl, uid) == 0) ; - free (uid) ; - free (modl) ; - return (match) ; + // read access to the candidate's character set value + const OFString& getCandidateCharacterSet() const + { + return candidateCharacterSet; } - /*** UID List comparison. - *** Match is successful if uid is found in model - **/ - - match = OFFalse ; - for (pc = modl ; *pc ; ) { - - /*** Calculate the length to the next '\' sign (if any). - *** Otherwise the length of pc is returned. - **/ - length = strcspn(pc, "\\") ; - - if ((length == strlen(uid)) && (strncmp (pc, uid, length) == 0)) { - match = OFTrue ; - break ; - } - else { - pc = strchr (pc, '\\') ; - if (pc == NULL) - break ; - else - pc++ ; + // prepare character set conversion for specific index record + void setRecord(IdxRecord& idxRec) + { + // copy value of specific character set of the entry, since the converter + // would need it as an OFString anyway. + candidateCharacterSet.assign(idxRec.param[RECORDIDX_SpecificCharacterSet].PValueField, + idxRec.param[RECORDIDX_SpecificCharacterSet].ValueLength); + // test if conversion is potentially necessary since the character sets differ + if (findRequestCharacterSet != candidateCharacterSet) { + // determine if the candidate is compatible to UTF-8 or must be converted + isCandidateConversionNecessary = isConversionToUTF8Necessary(candidateCharacterSet); + // if it must be converted, clear the converter if it was previously initialized, + // but for a different character set + if (isCandidateConversionNecessary && candidateConverter && + candidateConverter.getSourceCharacterSet() != candidateCharacterSet) { + candidateConverter.clear(); + } + // even if the character sets differ, they may both be compatible to UTF-8, + // in which case conversion is still not necessary + isConversionNecessary = isCandidateConversionNecessary || isFindRequestConversionNecessary; + } else { + // conversion is not necessary + isConversionNecessary = OFFalse; } } - free (uid) ; - free (modl) ; - return (match) ; - -} - -/************ -** Try to match Two Strings -** The first one is the "model", the second one an element -** Returns OFTrue if matching is OK, else returns OFFalse - */ - -int DcmQueryRetrieveIndexDatabaseHandle::matchStrings (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) -{ - int match ; - char *string ; - char *modl ; - - /*** Get elt and model data in strings - **/ - - string = (char *) malloc ((size_t)(elt->ValueLength + 1)) ; - if (string == NULL) { - return 0 ; - } - memcpy (string, elt->PValueField, (size_t)(elt->ValueLength)) ; - string [elt->ValueLength] = '\0' ; - - modl = (char *) malloc ((size_t)(mod->ValueLength + 1)) ; - if (modl == NULL) { - free (string) ; - return 0 ; - } - memcpy (modl, mod->PValueField, (size_t)(mod->ValueLength)) ; - modl [mod->ValueLength] = '\0' ; - -#ifdef STRICT_COMPARE + // Try to match Two DB_ElementList elements + // The first one is the query key, the second one the candidate + // from the database entry. + // Returns OFTrue if both values match, OFFalse otherwise + OFBool operator()(DB_ElementList* query, DB_SmallDcmElmt* candidate) + { + // Universal matching is applied if the query value is empty: + // always return OFTrue + if (!query->elem.ValueLength) + return OFTrue; + + OFString buffer; + const char* pQuery = query->elem.PValueField; + const char* pQueryEnd = pQuery + query->elem.ValueLength; + const char* pCandidate = candidate->PValueField; + const char* pCandidateEnd = pCandidate + candidate->ValueLength; + + DcmVR vr = DcmTag(query->elem.XTag).getVR(); + if (isConversionNecessary && vr.isAffectedBySpecificCharacterSet()) { +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + // convert query, if it isn't UTF-8 or ASCII already + if (isFindRequestConversionNecessary) { + // does a value already exist in the cache? + if (!query->utf8Value) { + // fill the cache if it doesn't + query->utf8Value = OFString(); + // initialize the converter, if this is the first + // time we need it + OFCondition cond = EC_Normal; + if (!findRequestConverter) + cond = findRequestConverter.selectCharacterSet(findRequestCharacterSet); + if (cond.good()) { + // covert the string and cache the result, using the + // specific delimitation characters for this VR + cond = findRequestConverter.convertString( + query->elem.PValueField, + query->elem.ValueLength, + *query->utf8Value, + vr.getDelimiterChars() + ); + } + if (cond.bad()) { + DCMQRDB_WARN("Character set conversion of the query key failed with the following error: '" << cond.text() + << "', will compare values that use different (incompatible) character sets: \"" + << characterSetName(findRequestCharacterSet) << "\" and \"" << characterSetName(candidateCharacterSet) << '"'); + // put the original value in the cache, since retrying the conversion on the next encounter does not make sense + // (it would only fail again). + query->utf8Value = OFString(query->elem.PValueField, query->elem.ValueLength); + } + } + // use the value from the cache for the following match + // operations + pQuery = query->utf8Value->c_str(); + pQueryEnd = pQuery + query->utf8Value->size(); + } + // convert the candidate, if it isn't already UTF-8 or ASCII + if (isCandidateConversionNecessary) { + // initialize the converter, if this is the first time + // we need it for this entry + OFCondition cond = EC_Normal; + if (!candidateConverter) + cond = candidateConverter.selectCharacterSet(candidateCharacterSet); + if (cond.good()) { + // convert the string using the local buffer and the + // specific delimitation characters for this VR + cond = candidateConverter.convertString( + candidate->PValueField, + candidate->ValueLength, + buffer, + vr.getDelimiterChars() + ); + } + if (cond.good()) { + // assign the buffer contents to the value being used + // in the following match operations + pCandidate = buffer.c_str(); + pCandidateEnd = pCandidate + buffer.size(); + } else { + DCMQRDB_WARN("Character set conversion of the candidate failed with the following error: '" << cond.text() + << "', will compare values that use different (incompatible) character sets: \"" + << characterSetName(findRequestCharacterSet) << "\" and \"" << characterSetName(candidateCharacterSet) << '"'); + } + } #else - /*** Suppress Leading and Trailing spaces in - *** model and string - **/ - - DB_RemoveEnclosingSpaces (string) ; - DB_RemoveEnclosingSpaces (modl) ; + DCMQRDB_WARN("Character set conversion is not available, comparing values that use different (incompatible) character sets: \"" + << characterSetName(findRequestCharacterSet) << "\" and \"" << characterSetName(candidateCharacterSet) << '"'); #endif + } - /*** If no '*' and no '?' in model - *** return strict comparison result - **/ + // remove leading and trailing spaces before matching + if (vr.isaString()) { + OFStandard::trimString(pQuery, pQueryEnd); + OFStandard::trimString(pCandidate, pCandidateEnd); + } - if ((strchr (modl, '*') == NULL) && (strchr (modl, '?') == NULL)) - { - int res = strcmp (modl, string); - free(string); - free(modl); - return res == 0; + // use DcmAttributeMatching to perform the appropriate matching function + // for the given VR + return DcmAttributeMatching( vr )( pQuery, pQueryEnd - pQuery, + pCandidate, pCandidateEnd - pCandidate ); } - match = DB_StringUnify (modl, string) ; - - free (string) ; - free (modl) ; - return (match) ; - -} +private: + const OFString& findRequestCharacterSet; + DcmSpecificCharacterSet& findRequestConverter; + OFString candidateCharacterSet; + DcmSpecificCharacterSet candidateConverter; + const OFBool isFindRequestConversionNecessary; + OFBool isCandidateConversionNecessary; + OFBool isConversionNecessary; +}; -/************ -** Try to match Two Unknown elements -** Strict comparison is applied -** The first one is the "model", the second one an element -** Returns OFTrue if matching is OK, else returns OFFalse - */ - -int DcmQueryRetrieveIndexDatabaseHandle::matchOther (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) +OFBool DcmQueryRetrieveIndexDatabaseHandle::isConversionToUTF8Necessary(const OFString& characterSet) { - if (mod->ValueLength != elt->ValueLength) - return OFFalse ; - - return (memcmp (mod->PValueField, elt->PValueField, (size_t)(elt->ValueLength)) == 0) ; + // empty -> ASCII, subset of UTF-8 + // ISO_IR 6 -> ASCII, subset of UTF-8 + // ISO_IR 192 -> UTF-8 + return !characterSet.empty() && + characterSet != "ISO_IR 192" && + characterSet != "ISO_IR 6" + ; } -/************ -** Try to match Two DB_SmallDcmElmts -** The first one is the "model", the second one an element -** Returns OFTrue if matching is OK, else returns OFFalse - */ - -int DcmQueryRetrieveIndexDatabaseHandle::dbmatch (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) +OFBool DcmQueryRetrieveIndexDatabaseHandle::isConversionNecessary(const OFString& sourceCharacterSet, + const OFString& destinationCharacterSet) { - DB_KEY_CLASS keyClass = OTHER_CLASS; - - /*** If model length is 0 - *** Universal matching is applied : return always OFTrue - **/ - - if (mod->ValueLength == 0) - return (OFTrue) ; - - /*** Get the key class of the element - **/ - - DB_GetTagKeyClass (elt->XTag, &keyClass) ; - - switch (keyClass) { - - case DATE_CLASS : - return matchDate (mod, elt) ; - - case TIME_CLASS : - return matchTime (mod, elt) ; - - case UID_CLASS : - return matchUID (mod, elt) ; - - case STRING_CLASS : - return matchStrings (mod, elt) ; - - case OTHER_CLASS : - return matchOther (mod, elt) ; - - } - return OFFalse; + // conversion is unnecessary if both are the same character set or if + // the destination is UTF-8 and the source is compatible to UTF-8 + // (i.e. ASCII). + return sourceCharacterSet != destinationCharacterSet && + ( + destinationCharacterSet != "ISO_IR 192" || + isConversionToUTF8Necessary(sourceCharacterSet) + ); } /************ @@ -1319,12 +1029,11 @@ void DcmQueryRetrieveIndexDatabaseHandle::makeResponseList ( /*** Append index record element to response list **/ - plist = (DB_ElementList *) malloc (sizeof (DB_ElementList)) ; + plist = new DB_ElementList ; if (plist == NULL) { DCMQRDB_ERROR("makeResponseList: out of memory"); return; } - plist->next = NULL ; DB_DuplicateElement(&idxRec->param[i], &plist->elem); @@ -1337,6 +1046,27 @@ void DcmQueryRetrieveIndexDatabaseHandle::makeResponseList ( } } + + /** Specific Character Set stuff + **/ + + if (idxRec->param[RECORDIDX_SpecificCharacterSet].ValueLength) { + plist = new DB_ElementList ; + if (plist == NULL) { + DCMQRDB_ERROR("makeResponseList: out of memory"); + return; + } + + DB_DuplicateElement(&idxRec->param[RECORDIDX_SpecificCharacterSet], &plist->elem); + + if (phandle->findResponseList == NULL) { + phandle->findResponseList = last = plist ; + } + else { + last->next = plist ; + last = plist ; + } + } } @@ -1489,7 +1219,8 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::hierarchicalCompare ( IdxRecord *idxRec, DB_LEVEL level, DB_LEVEL infLevel, - int *match) + int *match, + CharsetConsideringMatcher& dbmatch) { int i ; DcmTagKey XTag ; @@ -1533,7 +1264,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::hierarchicalCompare ( ** If Match fails, return OFFalse */ - if (! dbmatch (&(plist->elem), &idxRec->param[i])) { + if (!dbmatch(plist, &idxRec->param[i])) { *match = OFFalse ; return EC_Normal ; } @@ -1542,7 +1273,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::hierarchicalCompare ( ** Try at next level */ - return hierarchicalCompare (phandle, idxRec, (DB_LEVEL)(level + 1), infLevel, match) ; + return hierarchicalCompare (phandle, idxRec, (DB_LEVEL)(level + 1), infLevel, match, dbmatch) ; } /**** If current level is the QueryLevel @@ -1588,7 +1319,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::hierarchicalCompare ( */ - if (! dbmatch (&(plist->elem), &idxRec->param[i])) { + if (!dbmatch(plist, &idxRec->param[i])) { *match = OFFalse ; return EC_Normal ; } @@ -1641,15 +1372,19 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startFindRequest( return (QR_EC_IndexDatabaseError) ; } - /**** Parse Identifiers in the Dicom Object **** Find Query Level and construct a list **** of query identifiers ***/ + if (findRequestIdentifiers->findAndGetOFStringArray(DCM_SpecificCharacterSet, handle_->findRequestCharacterSet).bad()) + handle_->findRequestCharacterSet.clear(); + if (handle_->findRequestConverter && handle_->findRequestConverter.getSourceCharacterSet() != handle_->findRequestCharacterSet) + handle_->findRequestConverter.clear(); + handle_->findRequestList = NULL ; - int elemCount = (int)(findRequestIdentifiers->card()); + int elemCount = OFstatic_cast(int, findRequestIdentifiers->card()); for (int elemIndex=0; elemIndexgetElement(elemIndex); @@ -1659,7 +1394,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startFindRequest( elem.ValueLength = dcelem->getLength(); if (elem.ValueLength == 0) { elem.PValueField = NULL ; - } else if ((elem.PValueField = (char*)malloc((size_t)(elem.ValueLength+1))) == NULL) { + } else if ((elem.PValueField = OFstatic_cast(char*, malloc(OFstatic_cast(size_t, elem.ValueLength+1)))) == NULL) { status->setStatus(STATUS_FIND_Refused_OutOfResources); return (QR_EC_IndexDatabaseError) ; } else { @@ -1712,12 +1447,11 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startFindRequest( */ if (DB_TagSupported (elem. XTag)) { - plist = (DB_ElementList *) malloc (sizeof (DB_ElementList)) ; + plist = new DB_ElementList ; if (plist == NULL) { status->setStatus(STATUS_FIND_Refused_OutOfResources); return (QR_EC_IndexDatabaseError) ; } - plist->next = NULL ; DB_DuplicateElement (&elem, &(plist->elem)) ; if (handle_->findRequestList == NULL) { handle_->findRequestList = last = plist ; @@ -1787,6 +1521,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startFindRequest( MatchFound = OFFalse ; cond = EC_Normal ; + CharsetConsideringMatcher dbmatch(*handle_); while (1) { /*** Exit loop if read error (or end of file) @@ -1798,7 +1533,8 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startFindRequest( /*** Exit loop if error or matching OK **/ - cond = hierarchicalCompare (handle_, &idxRec, qLevel, qLevel, &MatchFound) ; + dbmatch.setRecord(idxRec); + cond = hierarchicalCompare (handle_, &idxRec, qLevel, qLevel, &MatchFound, dbmatch) ; if (cond != EC_Normal) break ; if (MatchFound) @@ -1867,7 +1603,8 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startFindRequest( OFCondition DcmQueryRetrieveIndexDatabaseHandle::nextFindResponse ( DcmDataset **findResponseIdentifiers, - DcmQueryRetrieveDatabaseStatus *status) + DcmQueryRetrieveDatabaseStatus *status, + const DcmQueryRetrieveCharacterSetOptions& characterSetOptions) { DB_ElementList *plist = NULL; @@ -1901,7 +1638,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::nextFindResponse ( for ( plist = handle_->findResponseList ; plist != NULL ; plist = plist->next ) { DcmTag t(plist->elem.XTag); - DcmElement *dce = newDicomElement(t); + DcmElement *dce = DcmItem::newDicomElement(t); if (dce == NULL) { status->setStatus(STATUS_FIND_Refused_OutOfResources); return QR_EC_IndexDatabaseError; @@ -1942,12 +1679,79 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::nextFindResponse ( } DU_putStringDOElement(*findResponseIdentifiers, DCM_QueryRetrieveLevel, queryLevelString); + +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + OFString specificCharacterSet; + if ((*findResponseIdentifiers)->findAndGetOFStringArray(DCM_SpecificCharacterSet, specificCharacterSet).bad()) + specificCharacterSet.clear(); + + const OFString* destinationCharacterSet = NULL; + const OFString* fallbackCharacterSet = NULL; + + if (characterSetOptions.flags & DcmQueryRetrieveCharacterSetOptions::Override) { + destinationCharacterSet = &characterSetOptions.characterSet; + if (characterSetOptions.flags & DcmQueryRetrieveCharacterSetOptions::Fallback) + fallbackCharacterSet = &handle_->findRequestCharacterSet; + } else { + destinationCharacterSet = &handle_->findRequestCharacterSet; + if (characterSetOptions.flags & DcmQueryRetrieveCharacterSetOptions::Fallback) + fallbackCharacterSet = &characterSetOptions.characterSet; + } + + if (isConversionNecessary(specificCharacterSet, *destinationCharacterSet)) { + OFCondition status = (*findResponseIdentifiers)->convertCharacterSet( + specificCharacterSet, + *destinationCharacterSet, + characterSetOptions.conversionFlags, + OFTrue); + if (status.bad()) { + DCMQRDB_WARN("Converting response from character set \"" + << characterSetName(specificCharacterSet) + << "\" to character set \"" + << characterSetName(*destinationCharacterSet) + << "\" failed, (error message: " << status.text() << ')'); + if (fallbackCharacterSet && isConversionNecessary(specificCharacterSet, *fallbackCharacterSet)) { + DCMQRDB_INFO("Trying to convert response from character set \"" + << characterSetName(specificCharacterSet) + << "\" to fall-back character set \"" + << characterSetName(*fallbackCharacterSet) << "\" instead"); + status = (*findResponseIdentifiers)->convertCharacterSet( + specificCharacterSet, + *fallbackCharacterSet, + characterSetOptions.conversionFlags, + OFTrue); + if (status.bad()) { + DCMQRDB_WARN("Converting response from character set \"" + << characterSetName(specificCharacterSet) + << "\" to character set \"" + << characterSetName(*fallbackCharacterSet) + << "\" failed, (error message: " << status.text() << ')'); + } else { + DCMQRDB_INFO("Successfully converted response from character set \"" + << characterSetName(specificCharacterSet) + << "\" to character set \"" + << characterSetName(*fallbackCharacterSet) << "\""); + } + } else if (fallbackCharacterSet) { + DCMQRDB_INFO("Conversion to fall-back character set \"" + << characterSetName(*fallbackCharacterSet) + << "\" is not necessary, since the original character set is compatible"); + } + } else { + DCMQRDB_INFO("Successfully converted response from character set \"" + << characterSetName(specificCharacterSet) + << "\" to character set \"" + << characterSetName(*destinationCharacterSet) + << "\""); + } + } +#endif + #ifdef DEBUG DCMQRDB_DEBUG("DB: findResponseIdentifiers:" << OFendl << DcmObject::PrintHelper(**findResponseIdentifiers)); #endif - } - else { + } else { DB_unlock(); @@ -1972,6 +1776,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::nextFindResponse ( MatchFound = OFFalse ; cond = EC_Normal ; + CharsetConsideringMatcher dbmatch(*handle_); while (1) { /*** Exit loop if read error (or end of file) @@ -1989,7 +1794,8 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::nextFindResponse ( /*** Exit loop if error or matching OK **/ - cond = hierarchicalCompare (handle_, &idxRec, qLevel, qLevel, &MatchFound) ; + dbmatch.setRecord(idxRec); + cond = hierarchicalCompare (handle_, &idxRec, qLevel, qLevel, &MatchFound, dbmatch) ; if (cond != EC_Normal) break ; if (MatchFound) @@ -2308,12 +2114,11 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startMoveRequest( if (! DB_TagSupported (elem. XTag)) continue ; - plist = (DB_ElementList *) malloc (sizeof( DB_ElementList ) ) ; + plist = new DB_ElementList ; if (plist == NULL) { status->setStatus(STATUS_FIND_Refused_OutOfResources); return (QR_EC_IndexDatabaseError) ; } - plist->next = NULL ; DB_DuplicateElement (&elem, & (plist->elem)) ; if (handle_->findRequestList == NULL) { handle_->findRequestList = last = plist ; @@ -2386,6 +2191,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startMoveRequest( DB_lock(OFFalse); + CharsetConsideringMatcher dbmatch(*handle_); DB_IdxInitLoop (&(handle_->idxCounter)) ; while (1) { @@ -2398,7 +2204,8 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::startMoveRequest( /*** If matching found **/ - cond = hierarchicalCompare (handle_, &idxRec, qLevel, qLevel, &MatchFound) ; + dbmatch.setRecord(idxRec); + cond = hierarchicalCompare (handle_, &idxRec, qLevel, qLevel, &MatchFound, dbmatch) ; if (MatchFound) { pidxlist = (DB_CounterList *) malloc (sizeof( DB_CounterList ) ) ; if (pidxlist == NULL) { @@ -2560,7 +2367,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::deleteImageFile(char* imgFile) return QR_EC_IndexDatabaseError; } if (dcmtk_flock(lockfd, LOCK_EX) < 0) { /* exclusive lock (blocking) */ - DCMQRDB_WARN("DB ERROR: cannot lock image file for deleting: " << imgFile); + DCMQRDB_WARN("DB ERROR: cannot lock image file for deleting: " << imgFile); dcmtk_plockerr("DB ERROR"); } #endif @@ -2574,7 +2381,7 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::deleteImageFile(char* imgFile) #ifdef LOCK_IMAGE_FILES if (dcmtk_flock(lockfd, LOCK_UN) < 0) { /* unlock */ - DCMQRDB_WARN("DB ERROR: cannot unlock image file for deleting: " << imgFile); + DCMQRDB_WARN("DB ERROR: cannot unlock image file for deleting: " << imgFile); dcmtk_plockerr("DB ERROR"); } close(lockfd); /* release file descriptor */ @@ -2902,8 +2709,11 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::storeRequest ( DcmDataset *dset = dcmff.getDataset(); + assert(dset); + + OFCondition ec; + for (i = 0 ; i < NBPARAMETERS ; i++ ) { - OFCondition ec = EC_Normal; DB_SmallDcmElmt *se = idxRec.param + i; const char *strPtr = NULL; @@ -2951,7 +2761,8 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::storeRequest ( (strcmp(SOPClassUID, UID_MacularGridThicknessAndVolumeReportStorage) == 0) || (strcmp(SOPClassUID, UID_ImplantationPlanSRDocumentStorage) == 0) || (strcmp(SOPClassUID, UID_RadiopharmaceuticalRadiationDoseSRStorage) == 0) || - (strcmp(SOPClassUID, UID_AcquisitionContextSRStorage) == 0)) + (strcmp(SOPClassUID, UID_AcquisitionContextSRStorage) == 0) || + (strcmp(SOPClassUID, UID_SimplifiedAdultEchoSRStorage) == 0)) { OFString string; OFString description = "unknown SR"; @@ -3331,7 +3142,56 @@ DcmQueryRetrieveIndexDatabaseHandle::DcmQueryRetrieveIndexDatabaseHandle( result = QR_EC_IndexDatabaseError; return; } - else { + else + { + result = DB_lock(OFTrue); + if ( result.bad() ) + return; + + // test whether the file contains more than zero bytes + if ( DB_lseek( handle_ -> pidx, 0L, SEEK_END ) > 0 ) + { + DB_lseek( handle_ -> pidx, 0L, SEEK_SET ); + // allocate HEADERSIZE + 1 bytes and fill it with zeros, + // ensuring whatever is read is terminated with a NUL byte + char header[DBHEADERSIZE+1] = {}; + // 0 is an invalid version, no matter what + unsigned int version = 0; + if + ( + read( handle_ -> pidx, header, DBHEADERSIZE ) != DBHEADERSIZE || + strncmp( header, DBMAGIC, strlen(DBMAGIC) ) != 0 || + sscanf( header + strlen(DBMAGIC), "%x", &version ) != 1 || + version != DBVERSION + ) + { + DB_unlock(); + if ( version ) + DCMQRDB_ERROR(handle_->indexFilename << ": invalid/unsupported QRDB database version " << version); + else + DCMQRDB_ERROR(handle_->indexFilename << ": unknown/legacy QRDB database file format"); + result = QR_EC_IndexDatabaseError; + return; + } + } + else + { + // write magic word and version number to the buffer + // then write it to the file + char header[DBHEADERSIZE]; + sprintf( header, DBMAGIC "%.2X", DBVERSION ); + if ( write( handle_ -> pidx, header, DBHEADERSIZE ) != DBHEADERSIZE ) + { + char buf[256]; + DCMQRDB_ERROR(handle_->indexFilename << ": " << OFStandard::strerror(errno, buf, sizeof(buf))); + DB_unlock(); + result = QR_EC_IndexDatabaseError; + return; + } + } + + DB_unlock(); + handle_ -> idxCounter = -1; handle_ -> findRequestList = NULL; handle_ -> findResponseList = NULL; @@ -3419,9 +3279,10 @@ OFCondition DcmQueryRetrieveIndexDatabaseHandle::instanceReviewed(int idx) if (result.bad()) return result; record.hstat = DVIF_objectIsNotNew; - DB_lseek(handle_->pidx, OFstatic_cast(long, SIZEOF_STUDYDESC + idx * SIZEOF_IDXRECORD), SEEK_SET); - write(handle_->pidx, OFreinterpret_cast(char *, &record), SIZEOF_IDXRECORD); - DB_lseek(handle_->pidx, 0L, SEEK_SET); + DB_lseek(handle_->pidx, OFstatic_cast(long, DBHEADERSIZE + SIZEOF_STUDYDESC + idx * SIZEOF_IDXRECORD), SEEK_SET); + if (write(handle_->pidx, OFreinterpret_cast(char *, &record), SIZEOF_IDXRECORD) != SIZEOF_IDXRECORD) + result = QR_EC_IndexDatabaseError; + DB_lseek(handle_->pidx, OFstatic_cast(long, DBHEADERSIZE), SEEK_SET); DB_unlock(); } diff --git a/dcmqrdb/libsrc/dcmqrptb.cc b/dcmqrdb/libsrc/dcmqrptb.cc index 419d00fd..3de8cc07 100644 --- a/dcmqrdb/libsrc/dcmqrptb.cc +++ b/dcmqrdb/libsrc/dcmqrptb.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2012, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -131,7 +131,7 @@ void DcmQueryRetrieveProcessTable::addProcessToTable(int pid, T_ASC_Association ASC_getPresentationAddresses(assoc->params, peerName, NULL); ASC_getAPTitles(assoc->params, callingAETitle, calledAETitle, NULL); - for (int i=0; igetCharacterSetOptions()); DIC_AE aeTitle; aeTitle[0] = '\0'; @@ -400,7 +400,7 @@ OFCondition DcmQueryRetrieveSCP::storeSCP(T_ASC_Association * assoc, T_DIMSE_C_S DcmDataset *dset = dcmff.getDataset(); - /* we must still retrieve the data set even if some error has occured */ + /* we must still retrieve the data set even if some error has occurred */ if (options_.bitPreserving_) { /* the bypass option can be set on the command line */ cond = DIMSE_storeProvider(assoc, presId, request, imageFileName, (int)options_.useMetaheader_, @@ -446,7 +446,7 @@ void DcmQueryRetrieveSCP::refuseAnyStorageContexts(T_ASC_Association * assoc) int i; T_ASC_PresentationContextID pid; - for (i = 0; i < numberOfAllDcmStorageSOPClassUIDs; i++) { + for (i = 0; i < numberOfDcmAllStorageSOPClassUIDs; i++) { do { pid = ASC_findAcceptedPresentationContextID(assoc, dcmAllStorageSOPClassUIDs[i]); if (pid != 0) ASC_refusePresentationContext(assoc->params, pid, ASC_P_USERREJECTION); @@ -677,6 +677,30 @@ OFCondition DcmQueryRetrieveSCP::negotiateAssociation(T_ASC_Association * assoc) transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; numTransferSyntaxes = 4; break; + case EXS_MPEG4HighProfileLevel4_2_For2DVideo: + /* we prefer MPEG4 HP/L4.2 for 2D Videos */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; + case EXS_MPEG4HighProfileLevel4_2_For3DVideo: + /* we prefer MPEG4 HP/L4.2 for 3D Videos */ + transferSyntaxes[0] = UID_MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; + case EXS_MPEG4StereoHighProfileLevel4_2: + /* we prefer MPEG4 Stereo HP/L4.2 */ + transferSyntaxes[0] = UID_MPEG4StereoHighProfileLevel4_2TransferSyntax; + transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; + transferSyntaxes[2] = UID_BigEndianExplicitTransferSyntax; + transferSyntaxes[3] = UID_LittleEndianImplicitTransferSyntax; + numTransferSyntaxes = 4; + break; case EXS_RLELossless: /* we prefer RLE Lossless */ transferSyntaxes[0] = UID_RLELosslessTransferSyntax; @@ -795,7 +819,7 @@ OFCondition DcmQueryRetrieveSCP::negotiateAssociation(T_ASC_Association * assoc) /* accept storage syntaxes with default role only */ cond = ASC_acceptContextsWithPreferredTransferSyntaxes( assoc->params, - dcmAllStorageSOPClassUIDs, numberOfAllDcmStorageSOPClassUIDs, + dcmAllStorageSOPClassUIDs, numberOfDcmAllStorageSOPClassUIDs, (const char**)transferSyntaxes, numTransferSyntaxes); if (cond.bad()) { DCMQRDB_ERROR("Cannot accept presentation contexts: " << DimseCondition::dump(temp_str, cond)); diff --git a/dcmqrdb/libsrc/dcmqrtis.cc b/dcmqrdb/libsrc/dcmqrtis.cc index b6a07ded..72a818ad 100644 --- a/dcmqrdb/libsrc/dcmqrtis.cc +++ b/dcmqrdb/libsrc/dcmqrtis.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1993-2012, OFFIS e.V. + * Copyright (C) 1993-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -1654,7 +1654,7 @@ OFBool DcmQueryRetrieveTelnetInitiator::TI_sendImage(int arg, const char * /*cmd OFBool DcmQueryRetrieveTelnetInitiator::TI_send(int /*arg*/, const char *cmdbuf) { OFBool ok = OFTrue; - char cmdarg[128]; + char cmdarg[1024]; int iarg; int narg; @@ -1814,7 +1814,7 @@ OFBool DcmQueryRetrieveTelnetInitiator::TI_buildStudies(TI_DBEntry *db) dbStatus.deleteStatusDetail(); while (dbStatus.status() == STATUS_Pending) { - dbcond = db->dbHandle->nextFindResponse(&reply, &dbStatus); + dbcond = db->dbHandle->nextFindResponse(&reply, &dbStatus, config.getCharacterSetOptions()); if (dbcond.bad()) { DCMQRDB_ERROR("TI_buildStudies: database error"); return OFFalse; @@ -1893,7 +1893,7 @@ OFBool DcmQueryRetrieveTelnetInitiator::TI_buildSeries(TI_DBEntry *db, TI_StudyE dbStatus.deleteStatusDetail(); while (dbStatus.status() == STATUS_Pending) { - dbcond = db->dbHandle->nextFindResponse(&reply, &dbStatus); + dbcond = db->dbHandle->nextFindResponse(&reply, &dbStatus, config.getCharacterSetOptions()); if (dbcond.bad()) { DCMQRDB_ERROR("TI_buildSeries: database error"); return OFFalse; @@ -1982,7 +1982,7 @@ OFBool DcmQueryRetrieveTelnetInitiator::TI_buildImages(TI_DBEntry *db, TI_StudyE } while (dbStatus.status() == STATUS_Pending) { - dbcond = db->dbHandle->nextFindResponse(&reply, &dbStatus); + dbcond = db->dbHandle->nextFindResponse(&reply, &dbStatus, config.getCharacterSetOptions()); if (dbcond.bad()) { DCMQRDB_ERROR("TI_buildImages: database error"); return OFFalse; diff --git a/dcmrt/apps/Makefile.dep b/dcmrt/apps/Makefile.dep index f9700e93..f8b17858 100644 --- a/dcmrt/apps/Makefile.dep +++ b/dcmrt/apps/Makefile.dep @@ -118,7 +118,8 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ @@ -128,16 +129,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -151,17 +153,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -183,9 +185,13 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtssrs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \ ../include/dcmtk/dcmrt/seq/drtcbars.h \ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \ @@ -194,8 +200,9 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ ../include/dcmtk/dcmrt/seq/drtmacds.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ + ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \ ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \ ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ @@ -225,10 +232,11 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \ ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \ ../include/dcmtk/dcmrt/seq/drtfgss.h \ @@ -238,6 +246,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttscds.h \ ../include/dcmtk/dcmrt/seq/drttsmds.h ../include/dcmtk/dcmrt/drtionpl.h \ ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \ + ../include/dcmtk/dcmrt/seq/drtddps.h \ ../include/dcmtk/dcmrt/seq/drtiblds.h \ ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ ../include/dcmtk/dcmrt/seq/drticps.h \ @@ -258,6 +267,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttsibs.h \ ../include/dcmtk/dcmrt/seq/drtas7.h \ ../include/dcmtk/dcmrt/seq/drtbldls.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ ../include/dcmtk/dcmrt/seq/drticpds.h \ ../include/dcmtk/dcmrt/seq/drtcpas.h \ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ diff --git a/dcmrt/apps/Makefile.in b/dcmrt/apps/Makefile.in index 63f57a89..3e2e39b3 100644 --- a/dcmrt/apps/Makefile.in +++ b/dcmrt/apps/Makefile.in @@ -21,7 +21,7 @@ LOCALINCLUDES = -I$(dcmdatadir)/include -I$(oflogdir)/include -I$(ofstddir)/incl LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmimgledir)/libsrc -L$(dcmdatadir)/libsrc \ -L$(oflogdir)/libsrc -L$(ofstddir)/libsrc LOCALLIBS = -ldcmrt -ldcmimgle -ldcmdata -loflog -lofstd \ - $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) objs = drtdump.o progs = drtdump diff --git a/dcmrt/include/dcmtk/dcmrt/drmimage.h b/dcmrt/include/dcmtk/dcmrt/drmimage.h index 94312475..33f583eb 100644 --- a/dcmrt/include/dcmtk/dcmrt/drmimage.h +++ b/dcmrt/include/dcmtk/dcmrt/drmimage.h @@ -63,7 +63,7 @@ public: * instance assumes ownership of the dataset pointer and will delete it * when done with it. You must not delete it yourself. This applies even * when the function returns an error. - * @param dataset DICOM dataset from which the RT Image should be read + * @param dataset DICOM dataset from which the RT Image should be read * @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition read(DcmItem *dataset); @@ -235,19 +235,18 @@ private: /// Reset this class image and DICOM object members virtual void reset(); - /** - * Hide DRTImageIOD::read(). DicomImage() doesn't allow the dataset that was - * used for loading the image to be deleted. Thus, read() cannot work. + /** hide DRTImageIOD::read(). DicomImage() doesn't allow the dataset that was + * used for loading the image to be deleted. Thus, read() cannot work. + * @return always returns EC_IllegalCall since this method should not be called */ virtual OFCondition read(DcmItem & /*dataset*/) { return EC_IllegalCall; } - /** - * Turn a status code from DicomImage into an OFCondition object. - * @param status status code - * @return OFCondition instance for the given status + /** turn a status code from DicomImage into an OFCondition object. + * @param status status code + * @return OFCondition instance for the given status */ OFCondition statusToCondition(int status) { diff --git a/dcmrt/include/dcmtk/dcmrt/drtdose.h b/dcmrt/include/dcmtk/dcmrt/drtdose.h index 6f902871..9f821886 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtdose.h +++ b/dcmrt/include/dcmtk/dcmrt/drtdose.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDoseIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2016-11-23 14:23:36 * */ @@ -23,6 +23,7 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdvhs.h" // for DVHSequence @@ -31,6 +32,7 @@ #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfes.h" // for FrameExtractionSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtiis.h" // for IconImageSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence @@ -38,7 +40,9 @@ #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence #include "dcmtk/dcmrt/seq/drtmls.h" // for ModalityLUTSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -55,7 +59,6 @@ #include "dcmtk/dcmrt/seq/drtrwvms.h" // for RealWorldValueMappingSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrfors.h" // for ReferencedFrameOfReferenceSequence -#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence #include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence @@ -70,12 +73,18 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence -#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtssrs.h" // for StructureSetROISequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTDoseIOD + * @note Because of its many member variables, an instance of this class requires quite + * some memory. So be careful when creating automatic variables from this class (the + * stack size might be exceeded); it is probably better to use the heap space. */ class DCMTK_DCMRT_EXPORT DRTDoseIOD : protected DRTTypes @@ -100,6 +109,7 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD /** assigment operator * @param copy IOD object to be copied + * @return reference to this object */ DRTDoseIOD &operator=(const DRTDoseIOD ©); @@ -349,6 +359,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get AuthorizationEquipmentCertificationNumber (0100,0426) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -489,6 +506,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const; + /** get ColorSpace (0028,2002) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const; + /** get Columns (0028,0011) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -579,13 +603,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; - /** get DerivationDescription (0008,2111) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; - /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -870,6 +887,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -925,6 +949,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1092,6 +1151,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1099,6 +1165,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1106,6 +1179,20 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1120,6 +1207,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1183,6 +1277,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1329,6 +1430,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PresentationLUTShape (2050,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1630,6 +1738,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1679,6 +1794,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getStereoPairsPresent(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StructureSetDate (3006,0008) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1846,6 +1982,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1942,6 +2090,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTFrameExtractionSequence &getFrameExtractionSequence() const { return FrameExtractionSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -2026,6 +2186,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + /** get ModalityLUTSequence (0028,3000) * @return reference to sequence element */ @@ -2038,6 +2210,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTModalityLUTSequence &getModalityLUTSequence() const { return ModalityLUTSequence; } + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -2230,18 +2414,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const { return ReferencedFrameOfReferenceSequence; } - /** get ReferencedImageSequence (0008,1140) - * @return reference to sequence element - */ - DRTReferencedImageSequence &getReferencedImageSequence() - { return ReferencedImageSequence; } - - /** get ReferencedImageSequence (0008,1140) - * @return const reference to sequence element - */ - const DRTReferencedImageSequence &getReferencedImageSequence() const - { return ReferencedImageSequence; } - /** get ReferencedInstanceSequence (0008,114a) * @return reference to sequence element */ @@ -2410,17 +2582,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } - /** get SourceImageSequence (0008,2112) + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) * @return reference to sequence element */ - DRTSourceImageSequence &getSourceImageSequence() - { return SourceImageSequence; } + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } - /** get SourceImageSequence (0008,2112) + /** get StrainStockSequence (0010,0216) * @return const reference to sequence element */ - const DRTSourceImageSequence &getSourceImageSequence() const - { return SourceImageSequence; } + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } /** get StructureSetROISequence (3006,0020) * @return reference to sequence element @@ -2446,6 +2642,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -2504,6 +2712,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set AuthorizationEquipmentCertificationNumber (0100,0426) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2644,6 +2859,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue); + /** set ColorSpace (0028,2002) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue); + /** set Columns (0028,0011) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -2714,13 +2936,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); - /** set DerivationDescription (0008,2111) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); - /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2945,6 +3160,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2987,6 +3209,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3127,6 +3370,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -3134,6 +3384,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -3141,6 +3398,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3155,6 +3419,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3211,6 +3482,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -3330,6 +3608,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PresentationLUTShape (2050,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3575,6 +3860,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -3617,6 +3909,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setStereoPairsPresent(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StructureSetDate (3006,0008) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -3744,6 +4057,12 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -3774,6 +4093,16 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -3786,6 +4115,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -3861,8 +4194,26 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -3907,6 +4258,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -3964,6 +4317,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -3994,18 +4349,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmTime AcquisitionTime; /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3 DcmDateTime AcquisitionDateTime; - /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 - DRTReferencedImageSequence ReferencedImageSequence; - /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 - DcmShortText DerivationDescription; - // DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 - // - also defined in: RTDoseModule - // DRTDerivationCodeSequence DerivationCodeSequence; - /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 - DRTSourceImageSequence SourceImageSequence; - // ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 - // - also defined in: RTDoseModule - // DRTReferencedInstanceSequence ReferencedInstanceSequence; /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3 DcmIntegerString ImagesInAcquisition; /// ImageComments (0020,4000) vr=LT, vm=1, type=3 @@ -4068,8 +4411,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD // PixelRepresentation (0028,0103) vr=US, vm=1, type=1 // - also defined in: RTDoseModule // DcmUnsignedShort PixelRepresentation; - /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C - DcmPixelData PixelData; /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C DcmUnsignedShort PlanarConfiguration; /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C @@ -4092,6 +4433,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmOtherByteOtherWord BluePaletteColorLookupTableData; /// ICCProfile (0028,2000) vr=OB, vm=1, type=3 DcmOtherByteOtherWord ICCProfile; + /// ColorSpace (0028,2002) vr=CS, vm=1, type=3 + DcmCodeString ColorSpace; + /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C + DcmPixelData PixelData; /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL; /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C @@ -4201,10 +4546,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD /// TissueHeterogeneityCorrection (3004,0014) vr=CS, vm=1-3, type=3 DcmCodeString TissueHeterogeneityCorrection; /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 - /// - also defined in: GeneralImageModule DRTDerivationCodeSequence DerivationCodeSequence; /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 - /// - also defined in: GeneralImageModule DRTReferencedInstanceSequence ReferencedInstanceSequence; // --- RTDVHModule (U) --- @@ -4272,6 +4615,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtimage.h b/dcmrt/include/dcmtk/dcmrt/drtimage.h index 3b7b1549..e92f5e41 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtimage.h +++ b/dcmrt/include/dcmtk/dcmrt/drtimage.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTImageIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2016-11-23 14:23:36 * */ @@ -23,6 +23,7 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtcbars.h" // for ContrastBolusAdministrationRouteSequence #include "dcmtk/dcmrt/seq/drtbas.h" // for ContrastBolusAgentSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence @@ -35,6 +36,7 @@ #include "dcmtk/dcmrt/seq/drtes.h" // for ExposureSequence #include "dcmtk/dcmrt/seq/drtfms.h" // for FluenceMapSequence #include "dcmtk/dcmrt/seq/drtfes.h" // for FrameExtractionSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtiis.h" // for IconImageSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence @@ -42,8 +44,10 @@ #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence #include "dcmtk/dcmrt/seq/drtmls.h" // for ModalityLUTSequence #include "dcmtk/dcmrt/seq/drtmacds.h" // for MultiplexedAudioChannelsDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -69,11 +73,19 @@ #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence #include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence #include "dcmtk/dcmrt/seq/drtvls.h" // for VOILUTSequence /** Interface class for RTImageIOD + * @note Because of its many member variables, an instance of this class requires quite + * some memory. So be careful when creating automatic variables from this class (the + * stack size might be exceeded); it is probably better to use the heap space. */ class DCMTK_DCMRT_EXPORT DRTImageIOD : protected DRTTypes @@ -98,6 +110,7 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD /** assigment operator * @param copy IOD object to be copied + * @return reference to this object */ DRTImageIOD &operator=(const DRTImageIOD ©); @@ -186,6 +199,14 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFBool isFrameOfReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether ContrastBolusModule (C) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -337,6 +358,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -512,6 +540,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const; + /** get ColorSpace (0028,2002) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const; + /** get Columns (0028,0011) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -741,6 +776,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const; + /** get ExposureTime (0018,1150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getExposureTime(OFString &value, const signed long pos = 0) const; + + /** get ExposureTime (0018,1150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getExposureTime(Sint32 &value, const unsigned long pos = 0) const; + + /** get ExposureTimeInms (0018,9328) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getExposureTimeInms(Float64 &value, const unsigned long pos = 0) const; + /** get FractionNumber (3002,0029) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1039,6 +1095,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1094,6 +1157,55 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + + /** get MetersetExposure (3002,0032) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMetersetExposure(OFString &value, const signed long pos = 0) const; + + /** get MetersetExposure (3002,0032) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMetersetExposure(Float64 &value, const unsigned long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1164,6 +1276,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1171,6 +1290,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1178,6 +1304,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1192,6 +1332,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1262,6 +1409,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientSupportAngle (300a,0122) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1423,6 +1577,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPreferredPlaybackSequencing(Uint16 &value, const unsigned long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PresentationLUTShape (2050,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1848,6 +2009,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1946,6 +2114,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getStopTrim(Sint32 &value, const unsigned long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -2243,6 +2432,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContrastBolusAdministrationRouteSequence (0018,0014) * @return reference to sequence element */ @@ -2387,6 +2588,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTFrameExtractionSequence &getFrameExtractionSequence() const { return FrameExtractionSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -2471,6 +2684,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + /** get ModalityLUTSequence (0028,3000) * @return reference to sequence element */ @@ -2495,6 +2720,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTMultiplexedAudioChannelsDescriptionCodeSequence &getMultiplexedAudioChannelsDescriptionCodeSequence() const { return MultiplexedAudioChannelsDescriptionCodeSequence; } + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -2795,6 +3032,54 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTSourceImageSequence &getSourceImageSequence() const { return SourceImageSequence; } + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -2807,6 +3092,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + /** get VOILUTSequence (0028,3010) * @return reference to sequence element */ @@ -2884,6 +3181,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3045,6 +3349,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue); + /** set ColorSpace (0028,2002) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue); + /** set Columns (0028,0011) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -3213,6 +3524,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue); + /** set ExposureTime (0018,1150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setExposureTime(const OFString &value, const OFBool check = OFTrue); + + /** set ExposureTimeInms (0018,9328) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setExposureTimeInms(const Float64 value, const unsigned long pos = 0); + /** set FractionNumber (3002,0029) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -3423,6 +3748,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3465,6 +3797,34 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + + /** set MetersetExposure (3002,0032) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMetersetExposure(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3528,6 +3888,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -3535,6 +3902,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -3542,6 +3916,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3556,6 +3937,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3619,6 +4007,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientSupportAngle (300a,0122) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -3759,6 +4154,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPreferredPlaybackSequencing(const Uint16 value, const unsigned long pos = 0); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PresentationLUTShape (2050,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -4095,6 +4497,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -4158,6 +4567,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setStopTrim(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -4330,6 +4760,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -4360,6 +4796,16 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -4372,6 +4818,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -4447,8 +4897,26 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -4493,6 +4961,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -4550,6 +5020,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -4581,16 +5053,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmTime AcquisitionTime; /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3 DcmDateTime AcquisitionDateTime; - /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 - DRTReferencedImageSequence ReferencedImageSequence; - /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 - DcmShortText DerivationDescription; - /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 - DRTDerivationCodeSequence DerivationCodeSequence; - /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 - DRTSourceImageSequence SourceImageSequence; - /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 - DRTReferencedInstanceSequence ReferencedInstanceSequence; /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3 DcmIntegerString ImagesInAcquisition; /// ImageComments (0020,4000) vr=LT, vm=1, type=3 @@ -4616,6 +5078,21 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD /// RealWorldValueMappingSequence (0040,9096) vr=SQ, vm=1, type=3 DRTRealWorldValueMappingSequence RealWorldValueMappingSequence; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- ImagePixelModule (M) --- // SamplesPerPixel (0028,0002) vr=US, vm=1, type=1 @@ -4640,8 +5117,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD // PixelRepresentation (0028,0103) vr=US, vm=1, type=1 // - also defined in: RTImageModule // DcmUnsignedShort PixelRepresentation; - /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C - DcmPixelData PixelData; /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C DcmUnsignedShort PlanarConfiguration; /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C @@ -4664,6 +5139,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmOtherByteOtherWord BluePaletteColorLookupTableData; /// ICCProfile (0028,2000) vr=OB, vm=1, type=3 DcmOtherByteOtherWord ICCProfile; + /// ColorSpace (0028,2002) vr=CS, vm=1, type=3 + DcmCodeString ColorSpace; + /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C + DcmPixelData PixelData; /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL; /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C @@ -4840,6 +5319,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmDecimalString IsocenterPosition; /// PatientPosition (0018,5100) vr=CS, vm=1, type=1C DcmCodeString PatientPosition; + /// ExposureTime (0018,1150) vr=IS, vm=1, type=3 + DcmIntegerString ExposureTime; + /// ExposureTimeInms (0018,9328) vr=FD, vm=1, type=3 + DcmFloatingPointDouble ExposureTimeInms; + /// MetersetExposure (3002,0032) vr=DS, vm=1, type=3 + DcmDecimalString MetersetExposure; // --- ModalityLUTModule (U) --- @@ -4898,6 +5383,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtionpl.h b/dcmrt/include/dcmtk/dcmrt/drtionpl.h index 889397d4..86a1e4b1 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtionpl.h +++ b/dcmrt/include/dcmtk/dcmrt/drtionpl.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2016-11-23 14:23:36 * */ @@ -23,13 +23,16 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drtdrs.h" // for DoseReferenceSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgs.h" // for FractionGroupSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtibs.h" // for IonBeamSequence #include "dcmtk/dcmrt/seq/drtitts.h" // for IonToleranceTableSequence @@ -38,6 +41,8 @@ #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -51,6 +56,8 @@ #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrds.h" // for ReferencedDoseSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -62,10 +69,19 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTIonPlanIOD + * @note Because of its many member variables, an instance of this class requires quite + * some memory. So be careful when creating automatic variables from this class (the + * stack size might be exceeded); it is probably better to use the heap space. */ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD : protected DRTTypes @@ -90,6 +106,7 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD /** assigment operator * @param copy IOD object to be copied + * @return reference to this object */ DRTIonPlanIOD &operator=(const DRTIonPlanIOD ©); @@ -218,6 +235,14 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -256,6 +281,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -403,6 +435,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -417,6 +456,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const; + /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const; + /** get FrameOfReferenceUID (0020,0052) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -501,6 +547,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -522,6 +575,41 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -578,6 +666,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -585,6 +680,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -592,6 +694,20 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -606,6 +722,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -662,6 +785,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -746,6 +876,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PrescriptionDescription (300a,000e) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -956,6 +1093,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -991,6 +1135,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1116,6 +1281,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1152,6 +1329,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1200,6 +1389,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTFractionGroupSequence &getFractionGroupSequence() const { return FractionGroupSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1296,6 +1497,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1452,6 +1677,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTReferencedDoseSequence &getReferencedDoseSequence() const { return ReferencedDoseSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1584,6 +1833,66 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1596,6 +1905,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1626,6 +1947,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1773,6 +2101,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1787,6 +2122,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue); + /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=16 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0); + /** set FrameOfReferenceUID (0020,0052) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -1864,6 +2206,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1885,6 +2234,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1941,6 +2311,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1948,6 +2325,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1955,6 +2339,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1969,6 +2360,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2018,6 +2416,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -2095,6 +2500,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PrescriptionDescription (300a,000e) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled @@ -2298,6 +2710,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2326,6 +2745,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2421,6 +2861,12 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2451,6 +2897,16 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2463,6 +2919,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2538,8 +2998,26 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2584,6 +3062,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2641,6 +3121,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2679,6 +3161,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTReferencedDoseSequence ReferencedDoseSequence; /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3 DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence; + /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3 + DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; // --- RTPrescriptionModule (U) --- @@ -2718,6 +3202,21 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C DcmPersonName ReviewerName; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2740,6 +3239,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtiontr.h b/dcmrt/include/dcmtk/dcmrt/drtiontr.h index 546f92c8..2d912f7f 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtiontr.h +++ b/dcmrt/include/dcmtk/dcmrt/drtiontr.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBeamsTreatmentRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2016-11-23 14:23:36 * */ @@ -24,19 +24,24 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgss.h" // for FractionGroupSummarySequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence #include "dcmtk/dcmrt/seq/drtmdrs.h" // for MeasuredDoseReferenceSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -49,6 +54,8 @@ #include "dcmtk/dcmrt/seq/drtpdecs.h" // for PrivateDataElementCharacteristicsSequence #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -60,14 +67,23 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence #include "dcmtk/dcmrt/seq/drttms0.h" // for TreatmentMachineSequence #include "dcmtk/dcmrt/seq/drttsibs.h" // for TreatmentSessionIonBeamSequence #include "dcmtk/dcmrt/seq/drttscds.h" // for TreatmentSummaryCalculatedDoseReferenceSequence #include "dcmtk/dcmrt/seq/drttsmds.h" // for TreatmentSummaryMeasuredDoseReferenceSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTIonBeamsTreatmentRecordIOD + * @note Because of its many member variables, an instance of this class requires quite + * some memory. So be careful when creating automatic variables from this class (the + * stack size might be exceeded); it is probably better to use the heap space. */ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD : protected DRTTypes @@ -92,6 +108,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD /** assigment operator * @param copy IOD object to be copied + * @return reference to this object */ DRTIonBeamsTreatmentRecordIOD &operator=(const DRTIonBeamsTreatmentRecordIOD ©); @@ -204,6 +221,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFBool isRTTreatmentSummaryRecordModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -242,6 +267,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get AuthorizationEquipmentCertificationNumber (0100,0426) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -389,6 +421,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -487,6 +526,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -508,6 +554,41 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -585,6 +666,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -592,6 +680,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -599,6 +694,20 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -613,6 +722,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -669,6 +785,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -739,6 +862,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PrimaryDosimeterUnit (300a,00b3) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -900,6 +1030,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -935,6 +1072,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1079,6 +1237,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1115,6 +1285,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1151,6 +1333,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const { return FractionGroupSummarySequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1223,6 +1417,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + /** get MeasuredDoseReferenceSequence (3008,0010) * @return reference to sequence element */ @@ -1235,6 +1441,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTMeasuredDoseReferenceSequence &getMeasuredDoseReferenceSequence() const { return MeasuredDoseReferenceSequence; } + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1379,6 +1597,30 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const { return ReasonForPerformedProcedureCodeSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1511,6 +1753,66 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1571,6 +1873,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const { return TreatmentSummaryMeasuredDoseReferenceSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1601,6 +1915,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set AuthorizationEquipmentCertificationNumber (0100,0426) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1748,6 +2069,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1839,6 +2167,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1860,6 +2195,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1930,6 +2286,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1937,6 +2300,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1944,6 +2314,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1958,6 +2335,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2007,6 +2391,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -2070,6 +2461,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PrimaryDosimeterUnit (300a,00b3) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2217,6 +2615,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2245,6 +2650,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2347,6 +2773,12 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2377,6 +2809,16 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2389,6 +2831,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2473,8 +2919,26 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2510,6 +2974,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2560,6 +3026,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2631,6 +3099,21 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3 DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2653,6 +3136,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtplan.h b/dcmrt/include/dcmtk/dcmrt/drtplan.h index cc7ed760..241b2862 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtplan.h +++ b/dcmrt/include/dcmtk/dcmrt/drtplan.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2016-11-23 14:23:36 * */ @@ -25,19 +25,24 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drtdrs.h" // for DoseReferenceSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgs.h" // for FractionGroupSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -51,6 +56,8 @@ #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrds.h" // for ReferencedDoseSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -62,13 +69,22 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtss.h" // for SourceSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence #include "dcmtk/dcmrt/seq/drttts.h" // for ToleranceTableSequence #include "dcmtk/dcmrt/seq/drttms9.h" // for TreatmentMachineSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTPlanIOD + * @note Because of its many member variables, an instance of this class requires quite + * some memory. So be careful when creating automatic variables from this class (the + * stack size might be exceeded); it is probably better to use the heap space. */ class DCMTK_DCMRT_EXPORT DRTPlanIOD : protected DRTTypes @@ -93,6 +109,7 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD /** assigment operator * @param copy IOD object to be copied + * @return reference to this object */ DRTPlanIOD &operator=(const DRTPlanIOD ©); @@ -237,6 +254,14 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -275,6 +300,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -436,6 +468,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -450,6 +489,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const; + /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const; + /** get FrameOfReferenceUID (0020,0052) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -534,6 +580,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -555,6 +608,41 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -611,6 +699,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -618,6 +713,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -625,6 +727,20 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -639,6 +755,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -695,6 +818,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -779,6 +909,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PrescriptionDescription (300a,000e) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -989,6 +1126,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1024,6 +1168,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1173,6 +1338,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1209,6 +1386,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1257,6 +1446,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTFractionGroupSequence &getFractionGroupSequence() const { return FractionGroupSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1329,6 +1530,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1485,6 +1710,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTReferencedDoseSequence &getReferencedDoseSequence() const { return ReferencedDoseSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1617,6 +1866,42 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + /** get SourceSequence (300a,0210) * @return reference to sequence element */ @@ -1629,6 +1914,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTSourceSequence &getSourceSequence() const { return SourceSequence; } + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1665,6 +1974,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule &getTreatmentMachineSequence() const { return TreatmentMachineSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1695,6 +2016,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1856,6 +2184,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1870,6 +2205,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue); + /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=16 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0); + /** set FrameOfReferenceUID (0020,0052) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -1947,6 +2289,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1968,6 +2317,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2024,6 +2394,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2031,6 +2408,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -2038,6 +2422,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2052,6 +2443,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2101,6 +2499,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -2178,6 +2583,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PrescriptionDescription (300a,000e) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled @@ -2381,6 +2793,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2409,6 +2828,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2504,6 +2944,12 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2534,6 +2980,16 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2546,6 +3002,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2621,8 +3081,26 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2667,6 +3145,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2724,6 +3204,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2762,6 +3244,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTReferencedDoseSequence ReferencedDoseSequence; /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3 DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence; + /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3 + DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; // --- RTPrescriptionModule (U) --- @@ -2814,6 +3298,21 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C DcmPersonName ReviewerName; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2836,6 +3335,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtstrct.h b/dcmrt/include/dcmtk/dcmrt/drtstrct.h index 21948f8d..7b2d9cf5 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtstrct.h +++ b/dcmrt/include/dcmtk/dcmrt/drtstrct.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTStructureSetIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2016-11-23 14:23:36 * */ @@ -23,17 +23,22 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -49,6 +54,8 @@ #include "dcmtk/dcmrt/seq/drtrros.h" // for RTROIObservationsSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrfors.h" // for ReferencedFrameOfReferenceSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -58,11 +65,20 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtssrs.h" // for StructureSetROISequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTStructureSetIOD + * @note Because of its many member variables, an instance of this class requires quite + * some memory. So be careful when creating automatic variables from this class (the + * stack size might be exceeded); it is probably better to use the heap space. */ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD : protected DRTTypes @@ -87,6 +103,7 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD /** assigment operator * @param copy IOD object to be copied + * @return reference to this object */ DRTStructureSetIOD &operator=(const DRTStructureSetIOD ©); @@ -183,6 +200,14 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -221,6 +246,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -368,6 +400,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -466,6 +505,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -487,6 +533,41 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -543,6 +624,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -550,6 +638,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -557,6 +652,20 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -571,6 +680,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -627,6 +743,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -704,6 +827,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get QualityControlSubject (0010,0200) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -865,6 +995,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -900,6 +1037,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StructureSetDate (3006,0008) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1046,6 +1204,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1082,6 +1252,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1106,6 +1288,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTEncryptedAttributesSequence &getEncryptedAttributesSequence() const { return EncryptedAttributesSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1178,6 +1372,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1358,6 +1576,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const { return ReferencedFrameOfReferenceSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1466,6 +1708,66 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StructureSetROISequence (3006,0020) * @return reference to sequence element */ @@ -1490,6 +1792,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1520,6 +1834,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1667,6 +1988,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1758,6 +2086,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1779,6 +2114,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1835,6 +2191,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1842,6 +2205,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1849,6 +2219,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1863,6 +2240,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1912,6 +2296,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -1982,6 +2373,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set QualityControlSubject (0010,0200) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2136,6 +2534,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2164,6 +2569,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StructureSetDate (3006,0008) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2280,6 +2706,12 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2310,6 +2742,16 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2322,6 +2764,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2397,8 +2843,26 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2443,6 +2907,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2493,6 +2959,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2552,6 +3020,21 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C DcmPersonName ReviewerName; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2574,6 +3057,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drttreat.h b/dcmrt/include/dcmtk/dcmrt/drttreat.h index 5822e242..e79c49ce 100644 --- a/dcmrt/include/dcmtk/dcmrt/drttreat.h +++ b/dcmrt/include/dcmtk/dcmrt/drttreat.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSummaryRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2016-11-23 14:23:36 * */ @@ -23,18 +23,23 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgss.h" // for FractionGroupSummarySequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -46,6 +51,8 @@ #include "dcmtk/dcmrt/seq/drtpdecs.h" // for PrivateDataElementCharacteristicsSequence #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -57,12 +64,21 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence #include "dcmtk/dcmrt/seq/drttscds.h" // for TreatmentSummaryCalculatedDoseReferenceSequence #include "dcmtk/dcmrt/seq/drttsmds.h" // for TreatmentSummaryMeasuredDoseReferenceSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTTreatmentSummaryRecordIOD + * @note Because of its many member variables, an instance of this class requires quite + * some memory. So be careful when creating automatic variables from this class (the + * stack size might be exceeded); it is probably better to use the heap space. */ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD : protected DRTTypes @@ -87,6 +103,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD /** assigment operator * @param copy IOD object to be copied + * @return reference to this object */ DRTTreatmentSummaryRecordIOD &operator=(const DRTTreatmentSummaryRecordIOD ©); @@ -167,6 +184,14 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFBool isClinicalTrialSeriesModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -205,6 +230,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get AuthorizationEquipmentCertificationNumber (0100,0426) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -352,6 +384,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -450,6 +489,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -471,6 +517,41 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -534,6 +615,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -541,6 +629,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -548,6 +643,20 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -562,6 +671,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -618,6 +734,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -688,6 +811,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get QualityControlSubject (0010,0200) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -828,6 +958,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -863,6 +1000,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -995,6 +1153,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1031,6 +1201,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1067,6 +1249,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const { return FractionGroupSummarySequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1139,6 +1333,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1271,6 +1489,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const { return ReasonForPerformedProcedureCodeSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1403,6 +1645,66 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1439,6 +1741,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const { return TreatmentSummaryMeasuredDoseReferenceSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1469,6 +1783,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set AuthorizationEquipmentCertificationNumber (0100,0426) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1616,6 +1937,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1707,6 +2035,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1728,6 +2063,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1791,6 +2147,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1798,6 +2161,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1805,6 +2175,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1819,6 +2196,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1868,6 +2252,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -1931,6 +2322,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set QualityControlSubject (0010,0200) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2064,6 +2462,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2092,6 +2497,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2194,6 +2620,12 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2224,6 +2656,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2236,6 +2678,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2311,8 +2757,26 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2357,6 +2821,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2407,6 +2873,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2447,6 +2915,21 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3 DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2469,6 +2952,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h index 271dfb24..1e990537 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAssigningAgencyOrDepartmentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTAssigningAgencyOrDepartmentCodeSequence &operator=(const DRTAssigningAgencyOrDepartmentCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h index 12211700..137644be 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAdmittingDiagnosesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTAdmittingDiagnosesCodeSequence &operator=(const DRTAdmittingDiagnosesCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtads.h b/dcmrt/include/dcmtk/dcmrt/seq/drtads.h index bd799e36..dea2491c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtads.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtads.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAdditionalDrugSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTAdditionalDrugSequence &operator=(const DRTAdditionalDrugSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h index af706b18..2283c18f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAssigningFacilitySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -166,6 +167,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTAssigningFacilitySequence &operator=(const DRTAssigningFacilitySequence ©); @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -227,31 +229,31 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -264,13 +266,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningFacilitySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtags.h b/dcmrt/include/dcmtk/dcmrt/seq/drtags.h index 9f9fa998..7e5a7a84 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtags.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtags.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorGeometrySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTApplicatorGeometrySequence &operator=(const DRTApplicatorGeometrySequence ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorGeometrySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h index 4d404cf1..88f5ab8f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAssigningJurisdictionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTAssigningJurisdictionCodeSequence &operator=(const DRTAssigningJurisdictionCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h index c1d420a8..efebd9e6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -215,6 +216,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTApplicatorSequenceInRTBeamsModule &operator=(const DRTApplicatorSequenceInRTBeamsModule ©); @@ -237,7 +239,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -253,7 +255,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -276,31 +278,31 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -313,13 +315,13 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -354,7 +356,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -362,7 +364,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h index a07e40eb..4957eceb 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -215,6 +216,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTApplicatorSequenceInRTImageModule &operator=(const DRTApplicatorSequenceInRTImageModule ©); @@ -237,7 +239,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -253,7 +255,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -276,31 +278,31 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -313,13 +315,13 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -354,7 +356,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -362,7 +364,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h index 2ca82efe..b3ea5bb1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTApplicatorSequenceInRTIonBeamsModule &operator=(const DRTApplicatorSequenceInRTIonBeamsModule ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h index 743c9518..6c077e2e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTApplicatorSequenceInRTIonBeamsSessionRecordModule &operator=(const DRTApplicatorSequenceInRTIonBeamsSessionRecordModule ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtass.h b/dcmrt/include/dcmtk/dcmrt/seq/drtass.h index d6f99221..6814c046 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtass.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtass.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicationSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -58,6 +58,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -314,6 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTApplicationSetupSequence &operator=(const DRTApplicationSetupSequence ©); @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -375,31 +377,31 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -412,13 +414,13 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -453,7 +455,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -461,7 +463,7 @@ class DCMTK_DCMRT_EXPORT DRTApplicationSetupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h index 6a9203b2..ad8d7a21 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBrachyAccessoryDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -274,6 +275,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBrachyAccessoryDeviceSequence &operator=(const DRTBrachyAccessoryDeviceSequence ©); @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -335,31 +337,31 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -372,13 +374,13 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -413,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -421,7 +423,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyAccessoryDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h index 62525029..494983d7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContrastBolusAgentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTContrastBolusAgentSequence &operator=(const DRTContrastBolusAgentSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h index 0d016247..013e0ea4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBrachyControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -249,6 +250,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBrachyControlPointSequence &operator=(const DRTBrachyControlPointSequence ©); @@ -271,7 +273,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -287,7 +289,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -310,31 +312,31 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -347,13 +349,13 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -388,7 +390,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -396,7 +398,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h index a5168096..9be375f2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBlockSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -229,6 +230,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule */ OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const; + /** get TrayAccessoryCode (300a,0355) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const; + // --- set DICOM attribute values --- /** set AccessoryCode (300a,00f9) @@ -322,6 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule */ OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue); + /** set TrayAccessoryCode (300a,0355) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue); + private: /// internal flag used to mark the empty default item @@ -353,6 +368,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule DcmShortString MaterialID; /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2 DcmDecimalString SourceToBlockTrayDistance; + /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3 + DcmLongString TrayAccessoryCode; }; @@ -374,6 +391,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBlockSequenceInRTBeamsModule &operator=(const DRTBlockSequenceInRTBeamsModule ©); @@ -396,7 +414,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -412,7 +430,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -435,31 +453,31 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -472,13 +490,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -513,7 +531,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -521,7 +539,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h index c0046f27..26ac3b0e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBlockSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -215,6 +216,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule */ OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const; + /** get TrayAccessoryCode (300a,0355) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const; + // --- set DICOM attribute values --- /** set AccessoryCode (300a,00f9) @@ -301,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule */ OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue); + /** set TrayAccessoryCode (300a,0355) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue); + private: /// internal flag used to mark the empty default item @@ -330,6 +345,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule DcmShortString MaterialID; /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2 DcmDecimalString SourceToBlockTrayDistance; + /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3 + DcmLongString TrayAccessoryCode; }; @@ -351,6 +368,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBlockSequenceInRTImageModule &operator=(const DRTBlockSequenceInRTImageModule ©); @@ -373,7 +391,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -389,7 +407,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -412,31 +430,31 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -449,13 +467,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -490,7 +508,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h index b6a15af0..f85dd84e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceLeafPairsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamLimitingDeviceLeafPairsSequence &operator=(const DRTBeamLimitingDeviceLeafPairsSequence ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceLeafPairsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h index acadc81c..cf32f7eb 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDevicePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -163,6 +164,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamLimitingDevicePositionSequence &operator=(const DRTBeamLimitingDevicePositionSequence ©); @@ -185,7 +187,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -201,7 +203,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -224,31 +226,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -261,13 +263,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -302,7 +304,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -310,7 +312,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDevicePositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h index 05d8c5ab..055b0cc4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -209,6 +210,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamLimitingDeviceSequenceInRTBeamsModule &operator=(const DRTBeamLimitingDeviceSequenceInRTBeamsModule ©); @@ -231,7 +233,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -247,7 +249,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -270,31 +272,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -307,13 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -348,7 +350,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -356,7 +358,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h index e23c7110..1c83a27f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -238,6 +239,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamLimitingDeviceSequenceInRTImageModule &operator=(const DRTBeamLimitingDeviceSequenceInRTImageModule ©); @@ -260,7 +262,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -276,7 +278,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -299,31 +301,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -336,13 +338,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -385,7 +387,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h index b3ca61b3..95eaaabf 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -238,6 +239,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamLimitingDeviceSequenceInRTIonBeamsModule &operator=(const DRTBeamLimitingDeviceSequenceInRTIonBeamsModule ©); @@ -260,7 +262,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -276,7 +278,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -299,31 +301,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -336,13 +338,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -385,7 +387,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h index 8cc3222d..95b71d2a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceToleranceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamLimitingDeviceToleranceSequence &operator=(const DRTBeamLimitingDeviceToleranceSequence ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamLimitingDeviceToleranceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h index 52a1c540..1bd508d0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBreedRegistryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBreedRegistryCodeSequence &operator=(const DRTBreedRegistryCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h index 1926e814..63b9f1ce 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBrachyReferencedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -164,6 +165,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBrachyReferencedDoseReferenceSequence &operator=(const DRTBrachyReferencedDoseReferenceSequence ©); @@ -186,7 +188,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -202,7 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -225,31 +227,31 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -262,13 +264,13 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -303,7 +305,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -311,7 +313,7 @@ class DCMTK_DCMRT_EXPORT DRTBrachyReferencedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h index bb5998fc..4a43dd2e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBreedRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -151,6 +152,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBreedRegistrationSequence &operator=(const DRTBreedRegistrationSequence ©); @@ -173,7 +175,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -212,31 +214,31 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -249,13 +251,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -290,7 +292,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -298,7 +300,7 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistrationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h index a585e4d7..12ad7431 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -67,6 +67,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -800,6 +801,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamSequence &operator=(const DRTBeamSequence ©); @@ -822,7 +824,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -838,7 +840,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -861,31 +863,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -898,13 +900,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -939,7 +941,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -947,7 +949,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h index 1ef3ef99..3baa2a3b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBlockSlabSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBlockSlabSequence &operator=(const DRTBlockSlabSequence ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTBlockSlabSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h index 0084c67b..9f158a83 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamDoseVerificationControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -111,12 +112,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence */ OFCondition getAverageBeamDosePointSSD(Float32 &value, const unsigned long pos = 0) const; - /** get AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) + /** get AverageBeamDosePointSourceToExternalContourDistance (300a,0131) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos = 0) const; + OFCondition getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos = 0) const; /** get CumulativeMetersetWeight (300a,0134) * @param value reference to variable in which the value should be stored @@ -169,12 +170,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence */ OFCondition setAverageBeamDosePointSSD(const Float32 value, const unsigned long pos = 0); - /** set AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) + /** set AverageBeamDosePointSourceToExternalContourDistance (300a,0131) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos = 0); + OFCondition setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos = 0); /** set CumulativeMetersetWeight (300a,0134) * @param value value to be set (single value only) or "" for no value @@ -201,8 +202,8 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence DcmFloatingPointSingle AverageBeamDosePointEquivalentDepth; /// AverageBeamDosePointSSD (300a,008f) vr=FL, vm=1, type=2C DcmFloatingPointSingle AverageBeamDosePointSSD; - /// AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) vr=FL, vm=1, type=3 - DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourSurfaceDistance; + /// AverageBeamDosePointSourceToExternalContourDistance (300a,0131) vr=FL, vm=1, type=3 + DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourDistance; /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=1 DcmDecimalString CumulativeMetersetWeight; /// ReferencedControlPointIndex (300c,00f0) vr=IS, vm=1, type=1C @@ -228,6 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTBeamDoseVerificationControlPointSequence &operator=(const DRTBeamDoseVerificationControlPointSequence ©); @@ -250,7 +252,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -266,7 +268,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -289,31 +291,31 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -326,13 +328,13 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -367,7 +369,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -375,7 +377,7 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h index b4a8b961..5f62b92d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContrastBolusAdministrationRouteSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -176,6 +177,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -302,6 +310,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -349,6 +364,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -374,6 +391,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTContrastBolusAdministrationRouteSequence &operator=(const DRTContrastBolusAdministrationRouteSequence ©); @@ -396,7 +414,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -412,7 +430,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -435,31 +453,31 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -472,13 +490,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -513,7 +531,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -521,7 +539,7 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h index dbc3c4fd..21f74fee 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConceptCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTConceptCodeSequence &operator=(const DRTConceptCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h index d9546ee1..df6672ed 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConsentForClinicalTrialUseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -166,6 +167,7 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTConsentForClinicalTrialUseSequence &operator=(const DRTConsentForClinicalTrialUseSequence ©); @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -227,31 +229,31 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -264,13 +266,13 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTConsentForClinicalTrialUseSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h index e03002a0..f66260a0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -203,6 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTCalculatedDoseReferenceSequence &operator=(const DRTCalculatedDoseReferenceSequence ©); @@ -225,7 +227,7 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -241,7 +243,7 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -264,31 +266,31 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -301,13 +303,13 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -342,7 +344,7 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -350,7 +352,7 @@ class DCMTK_DCMRT_EXPORT DRTCalculatedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtces.h b/dcmrt/include/dcmtk/dcmrt/seq/drtces.h index 4ff68b03..24a0d794 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtces.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtces.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContributingEquipmentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -381,6 +382,7 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTContributingEquipmentSequence &operator=(const DRTContributingEquipmentSequence ©); @@ -403,7 +405,7 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -419,7 +421,7 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -442,31 +444,31 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -479,13 +481,13 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -520,7 +522,7 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -528,7 +530,7 @@ class DCMTK_DCMRT_EXPORT DRTContributingEquipmentSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h new file mode 100644 index 00000000..50bae9e1 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h @@ -0,0 +1,352 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTContextGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTCGIS_H +#define DRTCGIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for ContextGroupIdentificationSequence (0008,0123) + */ +class DCMTK_DCMRT_EXPORT DRTContextGroupIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1 + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=1 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1 + DcmCodeString MappingResource; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTContextGroupIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTContextGroupIdentificationSequence &operator=(const DRTContextGroupIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h index a6138170..8e1c6791 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTChannelSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -614,6 +615,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTChannelSequence &operator=(const DRTChannelSequence ©); @@ -636,7 +638,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -652,7 +654,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -675,31 +677,31 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -712,13 +714,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -753,7 +755,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -761,7 +763,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h index 014d4a43..89240eb4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContentItemModifierSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -59,6 +59,7 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -369,6 +370,7 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTContentItemModifierSequence &operator=(const DRTContentItemModifierSequence ©); @@ -391,7 +393,7 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -407,7 +409,7 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -430,31 +432,31 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -467,13 +469,13 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -508,7 +510,7 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -516,7 +518,7 @@ class DCMTK_DCMRT_EXPORT DRTContentItemModifierSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h index 2b6ca660..407a4d9b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContourImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTContourImageSequence &operator=(const DRTContourImageSequence ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTContourImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h index d2fe4185..a43cf3fb 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConceptNameCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTConceptNameCodeSequence &operator=(const DRTConceptNameCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h index b3165ac0..37a1150b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -302,6 +303,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence */ OFCondition getSourceToCompensatorTrayDistance(Float64 &value, const unsigned long pos = 0) const; + /** get TrayAccessoryCode (300a,0355) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const; + // --- set DICOM attribute values --- /** set AccessoryCode (300a,00f9) @@ -423,6 +431,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence */ OFCondition setSourceToCompensatorTrayDistance(const OFString &value, const OFBool check = OFTrue); + /** set TrayAccessoryCode (300a,0355) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue); + private: /// internal flag used to mark the empty default item @@ -462,6 +477,8 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence DcmDecimalString SourceToCompensatorDistance; /// SourceToCompensatorTrayDistance (300a,00e6) vr=DS, vm=1, type=2 DcmDecimalString SourceToCompensatorTrayDistance; + /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3 + DcmLongString TrayAccessoryCode; }; @@ -483,6 +500,7 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTCompensatorSequence &operator=(const DRTCompensatorSequence ©); @@ -505,7 +523,7 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -521,7 +539,7 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -544,31 +562,31 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -581,13 +599,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -622,7 +640,7 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -630,7 +648,7 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h index 2f272181..a6d98d2e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCorrectedParameterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTCorrectedParameterSequence &operator=(const DRTCorrectedParameterSequence ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTCorrectedParameterSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h index 76052a2c..19ed79e6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConsultingPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTConsultingPhysicianIdentificationSequence &operator=(const DRTConsultingPhysicianIdentificationSequence ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTConsultingPhysicianIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h index 996ace14..5ec18251 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -59,6 +59,7 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -729,6 +730,7 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTControlPointSequence &operator=(const DRTControlPointSequence ©); @@ -751,7 +753,7 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -767,7 +769,7 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -790,31 +792,31 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -827,13 +829,13 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -868,7 +870,7 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -876,7 +878,7 @@ class DCMTK_DCMRT_EXPORT DRTControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h index 1e90545e..4a8c3ac2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -301,6 +302,7 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTContourSequence &operator=(const DRTContourSequence ©); @@ -323,7 +325,7 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -339,7 +341,7 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -362,31 +364,31 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -399,13 +401,13 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -440,7 +442,7 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -448,7 +450,7 @@ class DCMTK_DCMRT_EXPORT DRTContourSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h index e57aa0e5..7e064308 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConversionSourceAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTConversionSourceAttributesSequence &operator=(const DRTConversionSourceAttributesSequence ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTConversionSourceAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h index 273d59e2..3be5955a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTChannelShieldSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -258,6 +259,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTChannelShieldSequence &operator=(const DRTChannelShieldSequence ©); @@ -280,7 +282,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -319,31 +321,31 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -356,13 +358,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -397,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -405,7 +407,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelShieldSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h index 279ba042..09323659 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCodingSchemeIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTCodingSchemeIdentificationSequence &operator=(const DRTCodingSchemeIdentificationSequence ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTCodingSchemeIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h index 5368bc55..79c0d228 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTChannelSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTChannelSourceSequence &operator=(const DRTChannelSourceSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h index 49f3811f..7280e61f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDerivationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDerivationCodeSequence &operator=(const DRTDerivationCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h new file mode 100644 index 00000000..e687b54f --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h @@ -0,0 +1,368 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTDeliveredDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTDDDPS_H +#define DRTDDDPS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for DeliveredDepthDoseParametersSequence (300a,0506) + */ +class DCMTK_DCMRT_EXPORT DRTDeliveredDepthDoseParametersSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get DeliveredDistalDepth (300a,0508) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredDistalDepth(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredDistalDepthFraction (300a,0507) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredNominalRangeModulatedRegionDepths (300a,0510) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredNominalRangeModulationFractions (300a,0509) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredReferenceDoseDefinition (300a,0511) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set DeliveredDistalDepth (300a,0508) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredDistalDepth(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredDistalDepthFraction (300a,0507) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredNominalRangeModulatedRegionDepths (300a,0510) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredNominalRangeModulationFractions (300a,0509) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredReferenceDoseDefinition (300a,0511) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// DeliveredDistalDepth (300a,0508) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DeliveredDistalDepth; + /// DeliveredDistalDepthFraction (300a,0507) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DeliveredDistalDepthFraction; + /// DeliveredNominalRangeModulatedRegionDepths (300a,0510) vr=FL, vm=2, type=1C + DcmFloatingPointSingle DeliveredNominalRangeModulatedRegionDepths; + /// DeliveredNominalRangeModulationFractions (300a,0509) vr=FL, vm=2, type=1C + DcmFloatingPointSingle DeliveredNominalRangeModulationFractions; + /// DeliveredReferenceDoseDefinition (300a,0511) vr=CS, vm=1, type=1 + DcmCodeString DeliveredReferenceDoseDefinition; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence ©); + + /** destructor + */ + virtual ~DRTDeliveredDepthDoseParametersSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTDeliveredDepthDoseParametersSequence &operator=(const DRTDeliveredDepthDoseParametersSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h new file mode 100644 index 00000000..f5a36424 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h @@ -0,0 +1,368 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTDDPS_H +#define DRTDDPS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for DepthDoseParametersSequence (300a,0505) + */ +class DCMTK_DCMRT_EXPORT DRTDepthDoseParametersSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get DistalDepth (300a,0502) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDistalDepth(Float32 &value, const unsigned long pos = 0) const; + + /** get DistalDepthFraction (300a,0501) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const; + + /** get NominalRangeModulatedRegionDepths (300a,0504) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const; + + /** get NominalRangeModulationFractions (300a,0503) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const; + + /** get ReferenceDoseDefinition (300a,0512) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getReferenceDoseDefinition(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set DistalDepth (300a,0502) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDistalDepth(const Float32 value, const unsigned long pos = 0); + + /** set DistalDepthFraction (300a,0501) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDistalDepthFraction(const Float32 value, const unsigned long pos = 0); + + /** set NominalRangeModulatedRegionDepths (300a,0504) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0); + + /** set NominalRangeModulationFractions (300a,0503) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0); + + /** set ReferenceDoseDefinition (300a,0512) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// DistalDepth (300a,0502) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DistalDepth; + /// DistalDepthFraction (300a,0501) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DistalDepthFraction; + /// NominalRangeModulatedRegionDepths (300a,0504) vr=FL, vm=2, type=1C + DcmFloatingPointSingle NominalRangeModulatedRegionDepths; + /// NominalRangeModulationFractions (300a,0503) vr=FL, vm=2, type=1C + DcmFloatingPointSingle NominalRangeModulationFractions; + /// ReferenceDoseDefinition (300a,0512) vr=CS, vm=1, type=1 + DcmCodeString ReferenceDoseDefinition; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence ©); + + /** destructor + */ + virtual ~DRTDepthDoseParametersSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTDepthDoseParametersSequence &operator=(const DRTDepthDoseParametersSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h index 9e66cb66..3c41a37c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDeidentificationActionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDeidentificationActionSequence &operator=(const DRTDeidentificationActionSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationActionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h index 40d30cb9..a41917e5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDeidentificationMethodCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDeidentificationMethodCodeSequence &operator=(const DRTDeidentificationMethodCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h index 9bca717c..36c39594 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDICOMMediaRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDICOMMediaRetrievalSequence &operator=(const DRTDICOMMediaRetrievalSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMMediaRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h index ca2f9075..6a56023f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDICOMRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -134,6 +135,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDICOMRetrievalSequence &operator=(const DRTDICOMRetrievalSequence ©); @@ -156,7 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -195,31 +197,31 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -232,13 +234,13 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -273,7 +275,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -281,7 +283,7 @@ class DCMTK_DCMRT_EXPORT DRTDICOMRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h index 254a86f3..13f3d6ba 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -533,6 +534,7 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDoseReferenceSequence &operator=(const DRTDoseReferenceSequence ©); @@ -555,7 +557,7 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -571,7 +573,7 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -594,31 +596,31 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -631,13 +633,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -672,7 +674,7 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -680,7 +682,7 @@ class DCMTK_DCMRT_EXPORT DRTDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtds.h index c1c1a547..e43afa76 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -273,6 +274,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -457,6 +465,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -522,6 +537,8 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence DcmLongString ManufacturerModelName; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -547,6 +564,7 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDeviceSequence &operator=(const DRTDeviceSequence ©); @@ -569,7 +587,7 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -585,7 +603,7 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -608,31 +626,31 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -645,13 +663,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -686,7 +704,7 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -694,7 +712,7 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h index 258b1b9c..58f73152 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDigitalSignaturePurposeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDigitalSignaturePurposeCodeSequence &operator=(const DRTDigitalSignaturePurposeCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h index 6def9ee7..3e93b87d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDigitalSignaturesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -263,6 +264,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDigitalSignaturesSequence &operator=(const DRTDigitalSignaturesSequence ©); @@ -285,7 +287,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -301,7 +303,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -324,31 +326,31 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -361,13 +363,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -402,7 +404,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -410,7 +412,7 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h index ec4b5ce0..3440e89a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDVHSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -343,6 +344,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDVHSequence &operator=(const DRTDVHSequence ©); @@ -365,7 +367,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -381,7 +383,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -404,31 +406,31 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -441,13 +443,13 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -482,7 +484,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -490,7 +492,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h index 4bffe6da..5d4cd2b7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDVHReferencedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTDVHReferencedROISequence &operator=(const DRTDVHReferencedROISequence ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTDVHReferencedROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drteas.h b/dcmrt/include/dcmtk/dcmrt/seq/drteas.h index ca2279e0..dde50fe3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drteas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drteas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTEncryptedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTEncryptedAttributesSequence &operator=(const DRTEncryptedAttributesSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTEncryptedAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h index 0bedc2c2..f867aa5a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTEquivalentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -118,6 +119,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; + /** get ContextGroupExtensionCreatorUID (0008,010d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionFlag (0008,010b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupLocalVersion (0008,0107) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + /** get LongCodeValue (0008,0119) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -125,6 +168,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + /** get URNCodeValue (0008,0120) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -162,6 +226,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); + /** set ContextGroupExtensionCreatorUID (0008,010d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionFlag (0008,010b) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupLocalVersion (0008,0107) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + /** set LongCodeValue (0008,0119) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled @@ -169,6 +275,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + /** set URNCodeValue (0008,0120) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled @@ -189,8 +316,26 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence DcmShortString CodingSchemeDesignator; /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C DcmShortString CodingSchemeVersion; + /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C + DcmUniqueIdentifier ContextGroupExtensionCreatorUID; + /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 + DcmCodeString ContextGroupExtensionFlag; + /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupLocalVersion; + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C DcmUnlimitedCharacters LongCodeValue; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1C + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator URNCodeValue; @@ -214,6 +359,7 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTEquivalentCodeSequence &operator=(const DRTEquivalentCodeSequence ©); @@ -236,7 +382,7 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -252,7 +398,7 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -275,31 +421,31 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -312,13 +458,13 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -353,7 +499,7 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -361,7 +507,7 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtes.h b/dcmrt/include/dcmtk/dcmrt/seq/drtes.h index 91d48518..7f588753 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtes.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtes.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTExposureSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -60,6 +60,7 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -580,6 +581,7 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTExposureSequence &operator=(const DRTExposureSequence ©); @@ -602,7 +604,7 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -618,7 +620,7 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -641,31 +643,31 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -678,13 +680,13 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -719,7 +721,7 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -727,7 +729,7 @@ class DCMTK_DCMRT_EXPORT DRTExposureSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h index 3958b4e5..3a5f6fb9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFixationDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTFixationDeviceSequence &operator=(const DRTFixationDeviceSequence ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTFixationDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h index c0b838ae..1dedff0d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFrameExtractionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTFrameExtractionSequence &operator=(const DRTFrameExtractionSequence ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTFrameExtractionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h index 271ad229..70ac2693 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -59,6 +59,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -366,6 +367,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTFractionGroupSequence &operator=(const DRTFractionGroupSequence ©); @@ -388,7 +390,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -404,7 +406,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -427,31 +429,31 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -464,13 +466,13 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -505,7 +507,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -513,7 +515,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h index 2d51366d..44ae5bb3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFractionGroupSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -220,6 +221,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTFractionGroupSummarySequence &operator=(const DRTFractionGroupSummarySequence ©); @@ -242,7 +244,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -258,7 +260,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -281,31 +283,31 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -318,13 +320,13 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -359,7 +361,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -367,7 +369,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionGroupSummarySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h index 8f86405c..8d7987e5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFluenceMapSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTFluenceMapSequence &operator=(const DRTFluenceMapSequence ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTFluenceMapSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h index ae70ff56..3cd3b87c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFractionStatusSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTFractionStatusSummarySequence &operator=(const DRTFractionStatusSummarySequence ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTFractionStatusSummarySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h index 996eb8bf..f367de1f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTGeneralAccessorySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -221,6 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTGeneralAccessorySequence &operator=(const DRTGeneralAccessorySequence ©); @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -259,7 +261,7 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -282,31 +284,31 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -319,13 +321,13 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -360,7 +362,7 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -368,7 +370,7 @@ class DCMTK_DCMRT_EXPORT DRTGeneralAccessorySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h new file mode 100644 index 00000000..4f5a7a54 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h @@ -0,0 +1,369 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTGroupOfPatientsIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTGPIS_H +#define DRTGPIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence + + +/** Interface class for GroupOfPatientsIdentificationSequence (0010,0027) + */ +class DCMTK_DCMRT_EXPORT DRTGroupOfPatientsIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get IssuerOfPatientID (0010,0021) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + + /** get PatientID (0010,0020) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPatientID(OFString &value, const signed long pos = 0) const; + + /** get PatientPosition (0018,5100) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPatientPosition(OFString &value, const signed long pos = 0) const; + + /** get SubjectRelativePositionInImage (0010,0028) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return reference to sequence element + */ + DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() + { return IssuerOfPatientIDQualifiersSequence; } + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return const reference to sequence element + */ + const DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() const + { return IssuerOfPatientIDQualifiersSequence; } + + // --- set DICOM attribute values --- + + /** set IssuerOfPatientID (0010,0021) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + + /** set PatientID (0010,0020) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue); + + /** set PatientPosition (0018,5100) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPatientPosition(const OFString &value, const OFBool check = OFTrue); + + /** set SubjectRelativePositionInImage (0010,0028) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=3 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos = 0); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// IssuerOfPatientID (0010,0021) vr=LO, vm=1, type=3 + DcmLongString IssuerOfPatientID; + /// IssuerOfPatientIDQualifiersSequence (0010,0024) vr=SQ, vm=1, type=3 + DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; + /// PatientID (0010,0020) vr=LO, vm=1, type=1 + DcmLongString PatientID; + /// PatientPosition (0018,5100) vr=CS, vm=1, type=3 + DcmCodeString PatientPosition; + /// SubjectRelativePositionInImage (0010,0028) vr=US, vm=3, type=3 + DcmUnsignedShort SubjectRelativePositionInImage; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTGroupOfPatientsIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTGroupOfPatientsIdentificationSequence &operator=(const DRTGroupOfPatientsIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h index 0b84aa3c..32dee63d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTHL7StructuredDocumentReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTHL7StructuredDocumentReferenceSequence &operator=(const DRTHL7StructuredDocumentReferenceSequence ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTHL7StructuredDocumentReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h index 3426c48a..d20b640a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfAdmissionIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -166,6 +167,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIssuerOfAdmissionIDSequence &operator=(const DRTIssuerOfAdmissionIDSequence ©); @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -227,31 +229,31 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -264,13 +266,13 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtians.h b/dcmrt/include/dcmtk/dcmrt/seq/drtians.h index d3c22e62..a603cb4d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtians.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtians.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfAccessionNumberSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -166,6 +167,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIssuerOfAccessionNumberSequence &operator=(const DRTIssuerOfAccessionNumberSequence ©); @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -227,31 +229,31 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -264,13 +266,13 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAccessionNumberSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h index 253673f8..edb16f54 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBeamLimitingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -202,6 +203,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonBeamLimitingDeviceSequence &operator=(const DRTIonBeamLimitingDeviceSequence ©); @@ -224,7 +226,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -240,7 +242,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -263,31 +265,31 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -300,13 +302,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -341,7 +343,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -349,7 +351,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamLimitingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h index d1cf983f..ee649bc9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -384,6 +385,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonBlockSequence &operator=(const DRTIonBlockSequence ©); @@ -406,7 +408,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -422,7 +424,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -445,31 +447,31 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -482,13 +484,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -523,7 +525,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -531,7 +533,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBlockSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h index 105ab416..ae507760 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -20,6 +20,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtas6.h" // for ApplicatorSequence +#include "dcmtk/dcmrt/seq/drtddps.h" // for DepthDoseParametersSequence #include "dcmtk/dcmrt/seq/drtgas.h" // for GeneralAccessorySequence #include "dcmtk/dcmrt/seq/drtiblds.h" // for IonBeamLimitingDeviceSequence #include "dcmtk/dcmrt/seq/drtibls.h" // for IonBlockSequence @@ -69,6 +70,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -160,6 +162,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition getFinalCumulativeMetersetWeight(Float64 &value, const unsigned long pos = 0) const; + /** get FixationEye (300a,0150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationEye(OFString &value, const signed long pos = 0) const; + /** get FixationLightAzimuthalAngle (300a,0356) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -209,6 +218,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get ModulatedScanModeType (300a,0309) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const; + /** get NumberOfBlocks (300a,00f0) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -482,6 +498,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence const DRTApplicatorSequenceInRTIonBeamsModule &getApplicatorSequence() const { return ApplicatorSequence; } + /** get DepthDoseParametersSequence (300a,0505) + * @return reference to sequence element + */ + DRTDepthDoseParametersSequence &getDepthDoseParametersSequence() + { return DepthDoseParametersSequence; } + + /** get DepthDoseParametersSequence (300a,0505) + * @return const reference to sequence element + */ + const DRTDepthDoseParametersSequence &getDepthDoseParametersSequence() const + { return DepthDoseParametersSequence; } + /** get GeneralAccessorySequence (300a,0420) * @return reference to sequence element */ @@ -682,6 +710,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition setFinalCumulativeMetersetWeight(const OFString &value, const OFBool check = OFTrue); + /** set FixationEye (300a,0150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue); + /** set FixationLightAzimuthalAngle (300a,0356) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -731,6 +766,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set ModulatedScanModeType (300a,0309) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue); + /** set NumberOfBlocks (300a,00f0) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -921,10 +963,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence DcmIntegerString BeamNumber; /// BeamType (300a,00c4) vr=CS, vm=1, type=1 DcmCodeString BeamType; + /// DepthDoseParametersSequence (300a,0505) vr=SQ, vm=1, type=3 + DRTDepthDoseParametersSequence DepthDoseParametersSequence; /// DeviceSerialNumber (0018,1000) vr=LO, vm=1, type=3 DcmLongString DeviceSerialNumber; /// FinalCumulativeMetersetWeight (300a,010e) vr=DS, vm=1, type=1C DcmDecimalString FinalCumulativeMetersetWeight; + /// FixationEye (300a,0150) vr=CS, vm=1, type=3 + DcmCodeString FixationEye; /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3 DcmFloatingPointSingle FixationLightAzimuthalAngle; /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3 @@ -953,6 +999,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence DcmLongString Manufacturer; /// ManufacturerModelName (0008,1090) vr=LO, vm=1, type=3 DcmLongString ManufacturerModelName; + /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C + DcmCodeString ModulatedScanModeType; /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1 DcmIntegerString NumberOfBlocks; /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1 @@ -1036,6 +1084,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonBeamSequence &operator=(const DRTIonBeamSequence ©); @@ -1058,7 +1107,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -1074,7 +1123,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -1097,31 +1146,31 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -1134,13 +1183,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -1175,7 +1224,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -1183,7 +1232,7 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h b/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h index 5cd017c9..7158e6d2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonControlPointDeliverySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -62,6 +62,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -118,6 +119,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const; + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const; + + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const; + /** get DeliveredMeterset (3008,0044) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -293,6 +308,34 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const; + /** get ScanSpotPrescribedIndices (300a,0391) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotPrescribedIndices(OFString &value, const signed long pos = 0) const; + + /** get ScanSpotPrescribedIndices (300a,0391) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos = 0) const; + + /** get ScanSpotReordered (300a,0393) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotReordered(OFString &value, const signed long pos = 0) const; + + /** get ScanSpotTimeOffset (300a,038f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotTimeOffset(Float32 &value, const unsigned long pos = 0) const; + /** get ScanSpotTuneID (300a,0390) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -514,6 +557,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue); + /** set ChairHeadFramePosition (300a,0151) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue); + /** set DeliveredMeterset (3008,0044) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -633,6 +683,27 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0); + /** set ScanSpotPrescribedIndices (300a,0391) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (IS) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setScanSpotPrescribedIndices(const OFString &value, const OFBool check = OFTrue); + + /** set ScanSpotReordered (300a,0393) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setScanSpotReordered(const OFString &value, const OFBool check = OFTrue); + + /** set ScanSpotTimeOffset (300a,038f) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1-n + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setScanSpotTimeOffset(const Float32 value, const unsigned long pos = 0); + /** set ScanSpotTuneID (300a,0390) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled @@ -735,6 +806,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence; /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C DcmCodeString BeamLimitingDeviceRotationDirection; + /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3 + DcmDecimalString ChairHeadFramePosition; /// CorrectedParameterSequence (3008,0068) vr=SQ, vm=1, type=3 DRTCorrectedParameterSequence CorrectedParameterSequence; /// DeliveredMeterset (3008,0044) vr=DS, vm=1, type=1 @@ -781,6 +854,12 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence DcmFloatingPointSingle ScanSpotMetersetsDelivered; /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C DcmFloatingPointSingle ScanSpotPositionMap; + /// ScanSpotPrescribedIndices (300a,0391) vr=IS, vm=1-n, type=1C + DcmIntegerString ScanSpotPrescribedIndices; + /// ScanSpotReordered (300a,0393) vr=CS, vm=1, type=3 + DcmCodeString ScanSpotReordered; + /// ScanSpotTimeOffset (300a,038f) vr=FL, vm=1-n, type=3 + DcmFloatingPointSingle ScanSpotTimeOffset; /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C DcmShortString ScanSpotTuneID; /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3 @@ -828,6 +907,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonControlPointDeliverySequence &operator=(const DRTIonControlPointDeliverySequence ©); @@ -850,7 +930,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -866,7 +946,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -889,31 +969,31 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -926,13 +1006,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -967,7 +1047,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -975,7 +1055,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drticps.h b/dcmrt/include/dcmtk/dcmrt/seq/drticps.h index e13581a9..a94405b6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drticps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drticps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -61,6 +61,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -117,6 +118,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const; + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const; + + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const; + /** get ControlPointIndex (300a,0112) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -312,6 +327,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const; + /** get ScanSpotReorderingAllowed (300a,0395) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotReorderingAllowed(OFString &value, const signed long pos = 0) const; + /** get ScanSpotTuneID (300a,0390) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -513,6 +535,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue); + /** set ChairHeadFramePosition (300a,0151) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue); + /** set ControlPointIndex (300a,0112) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -639,6 +668,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0); + /** set ScanSpotReorderingAllowed (300a,0395) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setScanSpotReorderingAllowed(const OFString &value, const OFBool check = OFTrue); + /** set ScanSpotTuneID (300a,0390) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled @@ -727,6 +763,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence; /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C DcmCodeString BeamLimitingDeviceRotationDirection; + /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3 + DcmDecimalString ChairHeadFramePosition; /// ControlPointIndex (300a,0112) vr=IS, vm=1, type=1 DcmIntegerString ControlPointIndex; /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=2 @@ -773,6 +811,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence DcmFloatingPointSingle ScanSpotMetersetWeights; /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C DcmFloatingPointSingle ScanSpotPositionMap; + /// ScanSpotReorderingAllowed (300a,0395) vr=CS, vm=1, type=3 + DcmCodeString ScanSpotReorderingAllowed; /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C DcmShortString ScanSpotTuneID; /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3 @@ -816,6 +856,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonControlPointSequence &operator=(const DRTIonControlPointSequence ©); @@ -838,7 +879,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -854,7 +895,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -877,31 +918,31 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -914,13 +955,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -955,7 +996,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -963,7 +1004,7 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtics.h index 653883f2..54332271 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTInstitutionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTInstitutionCodeSequence &operator=(const DRTInstitutionCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h index de08f191..9999b541 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIconImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -118,6 +119,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence */ OFCondition getBluePaletteColorLookupTableDescriptor(Uint16 &value, const unsigned long pos = 0) const; + /** get ColorSpace (0028,2002) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getColorSpace(OFString &value, const signed long pos = 0) const; + /** get Columns (0028,0011) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -274,6 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence */ OFCondition setBluePaletteColorLookupTableDescriptor(const Uint16 value, const unsigned long pos = 0); + /** set ColorSpace (0028,2002) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue); + /** set Columns (0028,0011) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -392,6 +407,8 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence DcmOtherByteOtherWord BluePaletteColorLookupTableData; /// BluePaletteColorLookupTableDescriptor (0028,1103) vr=US/SS, vm=3, type=1C DcmUnsignedShort BluePaletteColorLookupTableDescriptor; + /// ColorSpace (0028,2002) vr=CS, vm=1, type=3 + DcmCodeString ColorSpace; /// Columns (0028,0011) vr=US, vm=1, type=1 DcmUnsignedShort Columns; /// GreenPaletteColorLookupTableData (0028,1202) vr=OW, vm=1, type=1C @@ -408,7 +425,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence DcmCodeString PhotometricInterpretation; /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C DcmIntegerString PixelAspectRatio; - /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C + /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1 DcmPixelData PixelData; /// PixelRepresentation (0028,0103) vr=US, vm=1, type=1 DcmUnsignedShort PixelRepresentation; @@ -445,6 +462,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIconImageSequence &operator=(const DRTIconImageSequence ©); @@ -467,7 +485,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -483,7 +501,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -506,31 +524,31 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -543,13 +561,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -584,7 +602,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -592,7 +610,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h index 60405a4c..3debc5bd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfPatientIDQualifiersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -58,6 +58,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -213,6 +214,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIssuerOfPatientIDQualifiersSequence &operator=(const DRTIssuerOfPatientIDQualifiersSequence ©); @@ -235,7 +237,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -251,7 +253,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -274,31 +276,31 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -311,13 +313,13 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -360,7 +362,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfPatientIDQualifiersSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h index 0cd39696..b21673ce 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonRangeCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -450,6 +451,7 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonRangeCompensatorSequence &operator=(const DRTIonRangeCompensatorSequence ©); @@ -472,7 +474,7 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -488,7 +490,7 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -511,31 +513,31 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -548,13 +550,13 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -589,7 +591,7 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -597,7 +599,7 @@ class DCMTK_DCMRT_EXPORT DRTIonRangeCompensatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h index bc19b3eb..472b5b95 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfServiceEpisodeIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -166,6 +167,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIssuerOfServiceEpisodeIDSequence &operator=(const DRTIssuerOfServiceEpisodeIDSequence ©); @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -227,31 +229,31 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -264,13 +266,13 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfServiceEpisodeIDSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h index 957209a9..1f48a7d6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -105,6 +106,48 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition getBeamLimitingDeviceAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get ChairHeadFramePositionTolerance (300a,0153) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePositionTolerance(OFString &value, const signed long pos = 0) const; + + /** get ChairHeadFramePositionTolerance (300a,0153) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos = 0) const; + + /** get FixationLightAzimuthalAngleTolerance (300a,0154) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos = 0) const; + + /** get FixationLightAzimuthalAngleTolerance (300a,0154) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + + /** get FixationLightPolarAngleTolerance (300a,0155) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightPolarAngleTolerance(OFString &value, const signed long pos = 0) const; + + /** get FixationLightPolarAngleTolerance (300a,0155) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get GantryAngleTolerance (300a,0044) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -119,6 +162,20 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition getGantryAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get HeadFixationAngleTolerance (300a,0152) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getHeadFixationAngleTolerance(OFString &value, const signed long pos = 0) const; + + /** get HeadFixationAngleTolerance (300a,0152) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get PatientSupportAngleTolerance (300a,004c) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -240,6 +297,27 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition setBeamLimitingDeviceAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set ChairHeadFramePositionTolerance (300a,0153) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setChairHeadFramePositionTolerance(const OFString &value, const OFBool check = OFTrue); + + /** set FixationLightAzimuthalAngleTolerance (300a,0154) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check = OFTrue); + + /** set FixationLightPolarAngleTolerance (300a,0155) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set GantryAngleTolerance (300a,0044) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -247,6 +325,13 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition setGantryAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set HeadFixationAngleTolerance (300a,0152) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setHeadFixationAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set PatientSupportAngleTolerance (300a,004c) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -319,8 +404,16 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence DcmDecimalString BeamLimitingDeviceAngleTolerance; /// BeamLimitingDeviceToleranceSequence (300a,0048) vr=SQ, vm=1, type=3 DRTBeamLimitingDeviceToleranceSequence BeamLimitingDeviceToleranceSequence; + /// ChairHeadFramePositionTolerance (300a,0153) vr=DS, vm=1, type=3 + DcmDecimalString ChairHeadFramePositionTolerance; + /// FixationLightAzimuthalAngleTolerance (300a,0154) vr=DS, vm=1, type=3 + DcmDecimalString FixationLightAzimuthalAngleTolerance; + /// FixationLightPolarAngleTolerance (300a,0155) vr=DS, vm=1, type=3 + DcmDecimalString FixationLightPolarAngleTolerance; /// GantryAngleTolerance (300a,0044) vr=DS, vm=1, type=3 DcmDecimalString GantryAngleTolerance; + /// HeadFixationAngleTolerance (300a,0152) vr=DS, vm=1, type=3 + DcmDecimalString HeadFixationAngleTolerance; /// PatientSupportAngleTolerance (300a,004c) vr=DS, vm=1, type=3 DcmDecimalString PatientSupportAngleTolerance; /// SnoutPositionTolerance (300a,004b) vr=FL, vm=1, type=3 @@ -360,6 +453,7 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonToleranceTableSequence &operator=(const DRTIonToleranceTableSequence ©); @@ -382,7 +476,7 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -398,7 +492,7 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -421,31 +515,31 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -458,13 +552,13 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -499,7 +593,7 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -507,7 +601,7 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h index fb5df8b0..2852b40c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonWedgePositionSequence &operator=(const DRTIonWedgePositionSequence ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgePositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h index 5e4800c4..03d21473 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -251,6 +252,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTIonWedgeSequence &operator=(const DRTIonWedgeSequence ©); @@ -273,7 +275,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -312,31 +314,31 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -349,13 +351,13 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -390,7 +392,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -398,7 +400,7 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h index 0bd66a70..a4755a35 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -205,6 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTLateralSpreadingDeviceSequence &operator=(const DRTLateralSpreadingDeviceSequence ©); @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -266,31 +268,31 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -303,13 +305,13 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -344,7 +346,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h index 45ec9aa9..8ea25e3f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule &operator=(const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsMo * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h index 4f57af6c..9473fa9a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule &operator=(const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSe * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h index 9ebcc727..c161a770 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -174,6 +175,7 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTMultiplexedAudioChannelsDescriptionCodeSequence &operator=(const DRTMultiplexedAudioChannelsDescriptionCodeSequence ©); @@ -196,7 +198,7 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -212,7 +214,7 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -235,31 +237,31 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -272,13 +274,13 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTMultiplexedAudioChannelsDescriptionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h index 040061c5..87c9b6d2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTModifiedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -114,6 +115,7 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTModifiedAttributesSequence &operator=(const DRTModifiedAttributesSequence ©); @@ -136,7 +138,7 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -152,7 +154,7 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -175,31 +177,31 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -212,13 +214,13 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -253,7 +255,7 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -261,7 +263,7 @@ class DCMTK_DCMRT_EXPORT DRTModifiedAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h index 4b6cd505..471ff25b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -235,6 +236,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTMeasuredDoseReferenceSequence &operator=(const DRTMeasuredDoseReferenceSequence ©); @@ -257,7 +259,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -273,7 +275,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -296,31 +298,31 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -333,13 +335,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -374,7 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -382,7 +384,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasuredDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h index 3fab93e0..c8ae0e2c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTModalityLUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -153,13 +154,13 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; - /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1C + /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1 DcmOtherByteOtherWord LUTData; - /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1C + /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1 DcmUnsignedShort LUTDescriptor; /// LUTExplanation (0028,3003) vr=LO, vm=1, type=3 DcmLongString LUTExplanation; - /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1C + /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1 DcmLongString ModalityLUTType; }; @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTModalityLUTSequence &operator=(const DRTModalityLUTSequence ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h index 8cb09f28..bfaffbea 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMACParametersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTMACParametersSequence &operator=(const DRTMACParametersSequence ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTMACParametersSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h new file mode 100644 index 00000000..53d319a5 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h @@ -0,0 +1,336 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTMappingResourceIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTMRIS_H +#define DRTMRIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for MappingResourceIdentificationSequence (0008,0124) + */ +class DCMTK_DCMRT_EXPORT DRTMappingResourceIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// MappingResource (0008,0105) vr=CS, vm=1, type=1 + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTMappingResourceIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTMappingResourceIdentificationSequence &operator=(const DRTMappingResourceIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h index 586f153a..609cb9f7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMotionSynchronizationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +183,7 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTMotionSynchronizationSequence &operator=(const DRTMotionSynchronizationSequence ©); @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -243,31 +245,31 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -280,13 +282,13 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTMotionSynchronizationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h index 6f73d721..f5d1ec81 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMeasurementUnitsCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTMeasurementUnitsCodeSequence &operator=(const DRTMeasurementUnitsCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h index b0de7e0e..8db022d3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOriginalAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -199,6 +200,7 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTOriginalAttributesSequence &operator=(const DRTOriginalAttributesSequence ©); @@ -221,7 +223,7 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -237,7 +239,7 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -260,31 +262,31 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -297,13 +299,13 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -338,7 +340,7 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -346,7 +348,7 @@ class DCMTK_DCMRT_EXPORT DRTOriginalAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtois.h b/dcmrt/include/dcmtk/dcmrt/seq/drtois.h index 68c33b91..91798e3a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtois.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtois.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOperatorIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTOperatorIdentificationSequence &operator=(const DRTOperatorIdentificationSequence ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTOperatorIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h index c1f068f8..f81ef78f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOtherPatientIDsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -183,6 +184,7 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTOtherPatientIDsSequence &operator=(const DRTOtherPatientIDsSequence ©); @@ -205,7 +207,7 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -221,7 +223,7 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -244,31 +246,31 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -281,13 +283,13 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -322,7 +324,7 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -330,7 +332,7 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtos.h index eee419e0..ade82ca0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOverrideSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -19,6 +19,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence /** Interface class for OverrideSequence (3008,0060) @@ -55,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -132,6 +134,27 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence */ OFCondition getParameterSequencePointer(OFString &value, const signed long pos = 0) const; + /** get ParameterValueNumber (3008,0067) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getParameterValueNumber(Uint16 &value, const unsigned long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + // --- set DICOM attribute values --- /** set OperatorsName (0008,1070) @@ -169,11 +192,20 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence */ OFCondition setParameterSequencePointer(const OFString &value, const OFBool check = OFTrue); + /** set ParameterValueNumber (3008,0067) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setParameterValueNumber(const Uint16 value, const unsigned long pos = 0); + private: /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; /// OverrideParameterPointer (3008,0062) vr=AT, vm=1, type=1 @@ -184,6 +216,8 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence DcmIntegerString ParameterItemIndex; /// ParameterSequencePointer (3008,0061) vr=AT, vm=1, type=1 DcmAttributeTag ParameterSequencePointer; + /// ParameterValueNumber (3008,0067) vr=US, vm=1, type=3 + DcmUnsignedShort ParameterValueNumber; }; @@ -205,6 +239,7 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTOverrideSequence &operator=(const DRTOverrideSequence ©); @@ -227,7 +262,7 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -243,7 +278,7 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -266,31 +301,31 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -303,13 +338,13 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -344,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -352,7 +387,7 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h index a044d022..467edf94 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientBreedCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPatientBreedCodeSequence &operator=(const DRTPatientBreedCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h index 06942a6b..d0cf9551 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTProcedureCodeSequence &operator=(const DRTProcedureCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h index db5baa51..3e097003 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTProtocolContextSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -60,6 +60,7 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -384,6 +385,7 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTProtocolContextSequence &operator=(const DRTProtocolContextSequence ©); @@ -406,7 +408,7 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -422,7 +424,7 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -445,31 +447,31 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -482,13 +484,13 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -523,7 +525,7 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -531,7 +533,7 @@ class DCMTK_DCMRT_EXPORT DRTProtocolContextSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h index 7cbca8a6..20f7eca8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPrivateDataElementCharacteristicsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -20,6 +20,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtdias.h" // for DeidentificationActionSequence +#include "dcmtk/dcmrt/seq/drtpdeds.h" // for PrivateDataElementDefinitionSequence /** Interface class for PrivateDataElementCharacteristicsSequence (0008,0300) @@ -56,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -133,6 +135,18 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence const DRTDeidentificationActionSequence &getDeidentificationActionSequence() const { return DeidentificationActionSequence; } + /** get PrivateDataElementDefinitionSequence (0008,0310) + * @return reference to sequence element + */ + DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence() + { return PrivateDataElementDefinitionSequence; } + + /** get PrivateDataElementDefinitionSequence (0008,0310) + * @return const reference to sequence element + */ + const DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence() const + { return PrivateDataElementDefinitionSequence; } + // --- set DICOM attribute values --- /** set BlockIdentifyingInformationStatus (0008,0303) @@ -176,6 +190,8 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence DcmUnsignedShort NonidentifyingPrivateElements; /// PrivateCreatorReference (0008,0302) vr=LO, vm=1, type=1 DcmLongString PrivateCreatorReference; + /// PrivateDataElementDefinitionSequence (0008,0310) vr=SQ, vm=1, type=3 + DRTPrivateDataElementDefinitionSequence PrivateDataElementDefinitionSequence; /// PrivateGroupReference (0008,0301) vr=US, vm=1, type=1 DcmUnsignedShort PrivateGroupReference; @@ -199,6 +215,7 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPrivateDataElementCharacteristicsSequence &operator=(const DRTPrivateDataElementCharacteristicsSequence ©); @@ -221,7 +238,7 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -237,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -260,31 +277,31 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -297,13 +314,13 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -338,7 +355,7 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -346,7 +363,7 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h new file mode 100644 index 00000000..feec7e22 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h @@ -0,0 +1,432 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTPrivateDataElementDefinitionSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTPDEDS_H +#define DRTPDEDS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for PrivateDataElementDefinitionSequence (0008,0310) + */ +class DCMTK_DCMRT_EXPORT DRTPrivateDataElementDefinitionSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get PrivateDataElement (0008,0308) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElement(Uint16 &value, const unsigned long pos = 0) const; + + /** get PrivateDataElementDescription (0008,030e) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementDescription(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementEncoding (0008,030f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementEncoding(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementKeyword (0008,030d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementKeyword(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementName (0008,030c) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementName(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementNumberOfItems (0008,030b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos = 0) const; + + /** get PrivateDataElementValueMultiplicity (0008,0309) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos = 0) const; + + /** get PrivateDataElementValueRepresentation (0008,030a) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementValueRepresentation(OFString &value, const signed long pos = 0) const; + + /** get RetrieveURI (0040,e010) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getRetrieveURI(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set PrivateDataElement (0008,0308) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElement(const Uint16 value, const unsigned long pos = 0); + + /** set PrivateDataElementDescription (0008,030e) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementDescription(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementEncoding (0008,030f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementEncoding(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementKeyword (0008,030d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementKeyword(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementName (0008,030c) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementName(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementNumberOfItems (0008,030b) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1-2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos = 0); + + /** set PrivateDataElementValueMultiplicity (0008,0309) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1-3 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos = 0); + + /** set PrivateDataElementValueRepresentation (0008,030a) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check = OFTrue); + + /** set RetrieveURI (0040,e010) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setRetrieveURI(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// PrivateDataElement (0008,0308) vr=US, vm=1, type=1 + DcmUnsignedShort PrivateDataElement; + /// PrivateDataElementDescription (0008,030e) vr=UT, vm=1, type=3 + DcmUnlimitedText PrivateDataElementDescription; + /// PrivateDataElementEncoding (0008,030f) vr=UT, vm=1, type=3 + DcmUnlimitedText PrivateDataElementEncoding; + /// PrivateDataElementKeyword (0008,030d) vr=UC, vm=1, type=1 + DcmUnlimitedCharacters PrivateDataElementKeyword; + /// PrivateDataElementName (0008,030c) vr=UC, vm=1, type=1 + DcmUnlimitedCharacters PrivateDataElementName; + /// PrivateDataElementNumberOfItems (0008,030b) vr=UL, vm=1-2, type=1C + DcmUnsignedLong PrivateDataElementNumberOfItems; + /// PrivateDataElementValueMultiplicity (0008,0309) vr=UL, vm=1-3, type=1 + DcmUnsignedLong PrivateDataElementValueMultiplicity; + /// PrivateDataElementValueRepresentation (0008,030a) vr=CS, vm=1, type=1 + DcmCodeString PrivateDataElementValueRepresentation; + /// RetrieveURI (0040,e010) vr=UR, vm=1, type=3 + DcmUniversalResourceIdentifierOrLocator RetrieveURI; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence ©); + + /** destructor + */ + virtual ~DRTPrivateDataElementDefinitionSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTPrivateDataElementDefinitionSequence &operator=(const DRTPrivateDataElementDefinitionSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h index 6a2c7441..3ae34ac6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPrimaryFluenceModeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPrimaryFluenceModeSequence &operator=(const DRTPrimaryFluenceModeSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTPrimaryFluenceModeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h index 18379149..dc2e4351 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPersonIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPersonIdentificationCodeSequence &operator=(const DRTPersonIdentificationCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h index 3f60799a..99bf93fd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPurposeOfReferenceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPurposeOfReferenceCodeSequence &operator=(const DRTPurposeOfReferenceCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h index c320ab3d..0a9538a0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPhysiciansOfRecordIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPhysiciansOfRecordIdentificationSequence &operator=(const DRTPhysiciansOfRecordIdentificationSequence ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansOfRecordIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h index 61d23144..608c6c9d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPerformedProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -176,6 +177,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -302,6 +310,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -347,6 +362,8 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3 @@ -374,6 +391,7 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPerformedProtocolCodeSequence &operator=(const DRTPerformedProtocolCodeSequence ©); @@ -396,7 +414,7 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -412,7 +430,7 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -435,31 +453,31 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -472,13 +490,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -513,7 +531,7 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -521,7 +539,7 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h index 77a56c7d..dec6f765 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPhysiciansReadingStudyIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPhysiciansReadingStudyIdentificationSequence &operator=(const DRTPhysiciansReadingStudyIdentificationSequence ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTPhysiciansReadingStudyIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h index 4e449dda..851a1c72 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientSpeciesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPatientSpeciesCodeSequence &operator=(const DRTPatientSpeciesCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h index 4b782662..b00ca2ae 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientSizeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPatientSizeCodeSequence &operator=(const DRTPatientSizeCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h index 86868409..5ac9215b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -60,6 +60,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -367,6 +368,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPatientSetupSequence &operator=(const DRTPatientSetupSequence ©); @@ -389,7 +391,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -405,7 +407,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -428,31 +430,31 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -465,13 +467,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -506,7 +508,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -514,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTPatientSetupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h index 2d03e6c0..99dc0eb8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPredecessorStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPredecessorStructureSetSequence &operator=(const DRTPredecessorStructureSetSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTPredecessorStructureSetSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h index b0ec5873..df4f349b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPlannedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -346,6 +347,7 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTPlannedVerificationImageSequence &operator=(const DRTPlannedVerificationImageSequence ©); @@ -368,7 +370,7 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -384,7 +386,7 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -407,31 +409,31 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -444,13 +446,13 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -485,7 +487,7 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -493,7 +495,7 @@ class DCMTK_DCMRT_EXPORT DRTPlannedVerificationImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h index 510cac7f..7b702011 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTQuantityDefinitionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -59,6 +59,7 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -369,6 +370,7 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTQuantityDefinitionSequence &operator=(const DRTQuantityDefinitionSequence ©); @@ -391,7 +393,7 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -407,7 +409,7 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -430,31 +432,31 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -467,13 +469,13 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -508,7 +510,7 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -516,7 +518,7 @@ class DCMTK_DCMRT_EXPORT DRTQuantityDefinitionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtras.h b/dcmrt/include/dcmtk/dcmrt/seq/drtras.h index 93c3fb56..5493783d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtras.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtras.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRequestAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -60,6 +60,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -307,6 +308,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRequestAttributesSequence &operator=(const DRTRequestAttributesSequence ©); @@ -329,7 +331,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -345,7 +347,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -368,31 +370,31 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -405,13 +407,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -446,7 +448,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -454,7 +456,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestAttributesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h index cd7017b0..9fd3b971 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -141,6 +142,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule &operator=(const DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule ©); @@ -163,7 +165,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -202,31 +204,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -239,13 +241,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -280,7 +282,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -288,7 +290,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTDoseModu * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h index 9bd023c9..b3089332 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -193,6 +194,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule &operator=(const DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule ©); @@ -215,7 +217,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -231,7 +233,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -254,31 +256,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -291,13 +293,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -332,7 +334,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -340,7 +342,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBrachyApplicationSetupSequenceInRTFraction * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h index 2fe40143..0f325692 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRecordedBlockSequence &operator=(const DRTRecordedBlockSequence ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedBlockSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h index ddf9cd54..b0f51261 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBolusSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBolusSequenceInRTBeamsModule &operator=(const DRTReferencedBolusSequenceInRTBeamsModule ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h index 50524c87..503cafec 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBolusSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBolusSequenceInRTIonBeamsModule &operator=(const DRTReferencedBolusSequenceInRTIonBeamsModule ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h index 2f63cf4f..473e266b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule &operator=(const DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModu * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h index ff393304..3205866f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBeamSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -158,6 +159,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBeamSequenceInRTDoseModule &operator=(const DRTReferencedBeamSequenceInRTDoseModule ©); @@ -180,7 +182,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -196,7 +198,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -219,31 +221,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -256,13 +258,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTDoseModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h index 4eb30e68..df87233b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -91,6 +92,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu // --- get DICOM attribute values --- + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const; + + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const; + + /** get AlternateBeamDoseType (300a,0092) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamDeliveryDurationLimit (300a,00c5) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -132,6 +154,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu */ OFCondition getBeamDoseSpecificationPoint(OFVector &value) const; + /** get BeamDoseType (300a,0090) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamMeterset (300a,0086) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -176,6 +205,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu // --- set DICOM attribute values --- + /** set AlternateBeamDose (300a,0091) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue); + + /** set AlternateBeamDoseType (300a,0092) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamDeliveryDurationLimit (300a,00c5) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -197,6 +240,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu */ OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue); + /** set BeamDoseType (300a,0090) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamMeterset (300a,0086) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -216,12 +266,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3 + DcmDecimalString AlternateBeamDose; + /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C + DcmCodeString AlternateBeamDoseType; /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3 DcmFloatingPointDouble BeamDeliveryDurationLimit; /// BeamDose (300a,0084) vr=DS, vm=1, type=3 DcmDecimalString BeamDose; /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3 DcmDecimalString BeamDoseSpecificationPoint; + /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C + DcmCodeString BeamDoseType; /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3 DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence; /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3 @@ -249,6 +305,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule &operator=(const DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule ©); @@ -271,7 +328,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -287,7 +344,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -310,31 +367,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -347,13 +404,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -388,7 +445,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -396,7 +453,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h index 335d75e8..71e7e928 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBeamSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -91,6 +92,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule // --- get DICOM attribute values --- + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const; + + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const; + + /** get AlternateBeamDoseType (300a,0092) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamDeliveryDurationLimit (300a,00c5) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -132,6 +154,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule */ OFCondition getBeamDoseSpecificationPoint(OFVector &value) const; + /** get BeamDoseType (300a,0090) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamMeterset (300a,0086) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -176,6 +205,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule // --- set DICOM attribute values --- + /** set AlternateBeamDose (300a,0091) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue); + + /** set AlternateBeamDoseType (300a,0092) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamDeliveryDurationLimit (300a,00c5) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -197,6 +240,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule */ OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue); + /** set BeamDoseType (300a,0090) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamMeterset (300a,0086) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -216,12 +266,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3 + DcmDecimalString AlternateBeamDose; + /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C + DcmCodeString AlternateBeamDoseType; /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3 DcmFloatingPointDouble BeamDeliveryDurationLimit; /// BeamDose (300a,0084) vr=DS, vm=1, type=3 DcmDecimalString BeamDose; /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3 DcmDecimalString BeamDoseSpecificationPoint; + /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C + DcmCodeString BeamDoseType; /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3 DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence; /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3 @@ -249,6 +305,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedBeamSequenceInRTFractionSchemeModule &operator=(const DRTReferencedBeamSequenceInRTFractionSchemeModule ©); @@ -271,7 +328,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -287,7 +344,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -310,31 +367,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -347,13 +404,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -388,7 +445,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -396,7 +453,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h index 8928e896..bb2ac94b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -187,6 +188,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedCalculatedDoseReferenceSequence &operator=(const DRTReferencedCalculatedDoseReferenceSequence ©); @@ -209,7 +211,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -225,7 +227,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -248,31 +250,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -285,13 +287,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -326,7 +328,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -334,7 +336,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedCalculatedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h index eba6728e..86b87ab3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRecordedCompensatorSequence &operator=(const DRTRecordedCompensatorSequence ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedCompensatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h index 9f1e4961..d67eadf7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -164,6 +165,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedControlPointSequence &operator=(const DRTReferencedControlPointSequence ©); @@ -186,7 +188,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -202,7 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -225,31 +227,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -262,13 +264,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -303,7 +305,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -311,7 +313,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedControlPointSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h index d24f3e92..83b1c113 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTROIContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -213,6 +214,7 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTROIContourSequence &operator=(const DRTROIContourSequence ©); @@ -235,7 +237,7 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -251,7 +253,7 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -274,31 +276,31 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -311,13 +313,13 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -360,7 +362,7 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h index 80bfbe0b..9a2cc74c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTDoseROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -180,6 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRTDoseROISequence &operator=(const DRTRTDoseROISequence ©); @@ -202,7 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -218,7 +220,7 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -241,31 +243,31 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -278,13 +280,13 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -319,7 +321,7 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -327,7 +329,7 @@ class DCMTK_DCMRT_EXPORT DRTRTDoseROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h index 31738280..f87dc9a0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -164,6 +165,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedDoseReferenceSequenceInRTBeamsModule &operator=(const DRTReferencedDoseReferenceSequenceInRTBeamsModule ©); @@ -186,7 +188,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -202,7 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -225,31 +227,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -262,13 +264,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -303,7 +305,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -311,7 +313,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h index 17320847..86032367 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -164,6 +165,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedDoseReferenceSequenceInRTIonBeamsModule &operator=(const DRTReferencedDoseReferenceSequenceInRTIonBeamsModule ©); @@ -186,7 +188,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -202,7 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -225,31 +227,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -262,13 +264,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -303,7 +305,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -311,7 +313,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h index 119e77f7..4f3a84db 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -394,6 +395,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule &operator=(const DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule ©); @@ -416,7 +418,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -432,7 +434,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -455,31 +457,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -492,13 +494,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -533,7 +535,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -541,7 +543,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseReferenceSequenceInRTFractionSchemeMod * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h index 40e6bca8..caed2f58 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedDoseSequence &operator=(const DRTReferencedDoseSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedDoseSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h index 20b6b1ee..60121f66 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTROIElementalCompositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTROIElementalCompositionSequence &operator=(const DRTROIElementalCompositionSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTROIElementalCompositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h index 79fad866..32b19079 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedFractionGroupSequence &operator=(const DRTReferencedFractionGroupSequence ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFractionGroupSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h index 514fb87c..a8df8afd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedFrameOfReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -151,6 +152,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedFrameOfReferenceSequence &operator=(const DRTReferencedFrameOfReferenceSequence ©); @@ -173,7 +175,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -212,31 +214,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -249,13 +251,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -290,7 +292,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -298,7 +300,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedFrameOfReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h index 2aee19aa..72036cbd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTROIIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -20,6 +20,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence +#include "dcmtk/dcmrt/seq/drtsptcs.h" // for SegmentedPropertyTypeModifierCodeSequence /** Interface class for RTROIIdentificationCodeSequence (3006,0086) @@ -56,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +177,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -203,6 +212,18 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const { return EquivalentCodeSequence; } + /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011) + * @return reference to sequence element + */ + DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence() + { return SegmentedPropertyTypeModifierCodeSequence; } + + /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011) + * @return const reference to sequence element + */ + const DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence() const + { return SegmentedPropertyTypeModifierCodeSequence; } + // --- set DICOM attribute values --- /** set CodeMeaning (0008,0104) @@ -289,6 +310,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,8 +362,12 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; + /// SegmentedPropertyTypeModifierCodeSequence (0062,0011) vr=SQ, vm=1, type=3 + DRTSegmentedPropertyTypeModifierCodeSequence SegmentedPropertyTypeModifierCodeSequence; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator URNCodeValue; @@ -359,6 +391,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRTROIIdentificationCodeSequence &operator=(const DRTRTROIIdentificationCodeSequence ©); @@ -381,7 +414,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +430,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +453,31 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +490,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +531,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +539,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h index c5cc0896..95a68c79 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -206,6 +207,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedImageSequence &operator=(const DRTReferencedImageSequence ©); @@ -228,7 +230,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -244,7 +246,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -267,31 +269,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -304,13 +306,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -345,7 +347,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -353,7 +355,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtris.h index e02c5994..957eb217 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtris.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedInstanceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -167,6 +168,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedInstanceSequence &operator=(const DRTReferencedInstanceSequence ©); @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -205,7 +207,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -228,31 +230,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -265,13 +267,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -306,7 +308,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -314,7 +316,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h index c802d6de..693e3090 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRecordedLateralSpreadingDeviceSequence &operator=(const DRTRecordedLateralSpreadingDeviceSequence ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedLateralSpreadingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h index b8e7da6d..32787fec 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -187,6 +188,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedMeasuredDoseReferenceSequence &operator=(const DRTReferencedMeasuredDoseReferenceSequence ©); @@ -209,7 +211,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -225,7 +227,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -248,31 +250,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -285,13 +287,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -326,7 +328,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -334,7 +336,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedMeasuredDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h index f45f87e1..8fcb39ba 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -221,6 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRangeModulatorSequence &operator=(const DRTRangeModulatorSequence ©); @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -259,7 +261,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -282,31 +284,31 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -319,13 +321,13 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -360,7 +362,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -368,7 +370,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h index 9cf6e015..ecb611c7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -221,6 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRangeModulatorSettingsSequenceInRTIonBeamsModule &operator=(const DRTRangeModulatorSettingsSequenceInRTIonBeamsModule ©); @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -259,7 +261,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -282,31 +284,31 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -319,13 +321,13 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -360,7 +362,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -368,7 +370,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h index f0356b70..4b1dd10e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule &operator=(const DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRec * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h index 75b8e93e..2f8a67c6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRequestedProcedureCodeSequence &operator=(const DRTRequestedProcedureCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h index 4f466b19..c8e6a26a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferringPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferringPhysicianIdentificationSequence &operator=(const DRTReferringPhysicianIdentificationSequence ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTReferringPhysicianIdentificationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h index 165744df..f9e45bcb 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReasonForPerformedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReasonForPerformedProcedureCodeSequence &operator=(const DRTReasonForPerformedProcedureCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h index d7264885..a289878a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedPatientPhotoSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -61,6 +61,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -258,6 +259,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedPatientPhotoSequence &operator=(const DRTReferencedPatientPhotoSequence ©); @@ -280,7 +282,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -319,31 +321,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -356,13 +358,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -397,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -405,7 +407,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientPhotoSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h index 193865cd..10197f97 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTROIPhysicalPropertiesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -174,6 +175,7 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTROIPhysicalPropertiesSequence &operator=(const DRTROIPhysicalPropertiesSequence ©); @@ -196,7 +198,7 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -212,7 +214,7 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -235,31 +237,31 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -272,13 +274,13 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -321,7 +323,7 @@ class DCMTK_DCMRT_EXPORT DRTROIPhysicalPropertiesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h index 7d241776..37ce7b14 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedPerformedProcedureStepSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedPerformedProcedureStepSequence &operator=(const DRTReferencedPerformedProcedureStepSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPerformedProcedureStepSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h index 921b6149..50c1c898 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedPatientSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedPatientSequence &operator=(const DRTReferencedPatientSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedPatientSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h index ac4456ba..bd374cbb 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedReferenceImageSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -219,6 +220,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedReferenceImageSequenceInRTBeamsModule &operator=(const DRTReferencedReferenceImageSequenceInRTBeamsModule ©); @@ -241,7 +243,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -257,7 +259,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -280,31 +282,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -317,13 +319,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -358,7 +360,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -366,7 +368,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h index ffd2638e..443b4e9e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedReferenceImageSequenceInRTIonBeamsModule &operator=(const DRTReferencedReferenceImageSequenceInRTIonBeamsModule ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h index 08e660af..5dabc53f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule &operator=(const DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedReferenceImageSequenceInRTBrachyApplicatio * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h index d6bbcf57..ad710393 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -205,6 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRecordedRangeModulatorSequence &operator=(const DRTRecordedRangeModulatorSequence ©); @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -266,31 +268,31 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -303,13 +305,13 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -344,7 +346,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeModulatorSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h index e2c9b7f5..6acf0197 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -19,7 +19,6 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class -#include "dcmtk/dcmrt/seq/drtarics.h" // for AdditionalRTROIIdentificationCodeSequence #include "dcmtk/dcmrt/seq/drtrpps.h" // for ROIPhysicalPropertiesSequence #include "dcmtk/dcmrt/seq/drtrics.h" // for RTROIIdentificationCodeSequence #include "dcmtk/dcmrt/seq/drtrrs.h" // for RTRelatedROISequence @@ -61,6 +60,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -161,18 +161,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence // --- get DICOM sequence attributes --- - /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9) - * @return reference to sequence element - */ - DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence() - { return AdditionalRTROIIdentificationCodeSequence; } - - /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9) - * @return const reference to sequence element - */ - const DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence() const - { return AdditionalRTROIIdentificationCodeSequence; } - /** get ROIPhysicalPropertiesSequence (3006,00b0) * @return reference to sequence element */ @@ -289,8 +277,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; - /// AdditionalRTROIIdentificationCodeSequence (3006,00b9) vr=SQ, vm=1, type=3 - DRTAdditionalRTROIIdentificationCodeSequence AdditionalRTROIIdentificationCodeSequence; /// MaterialID (300a,00e1) vr=SH, vm=1, type=3 DcmShortString MaterialID; /// ObservationNumber (3006,0082) vr=IS, vm=1, type=1 @@ -336,6 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRTROIObservationsSequence &operator=(const DRTRTROIObservationsSequence ©); @@ -358,7 +345,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -374,7 +361,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -397,31 +384,31 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -434,13 +421,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -475,7 +462,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -483,7 +470,7 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h index 2b348453..1b134f6f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReasonForRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReasonForRequestedProcedureCodeSequence &operator=(const DRTReasonForRequestedProcedureCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h index d37493c1..97640b55 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRelatedRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -141,6 +142,7 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRelatedRTROIObservationsSequence &operator=(const DRTRelatedRTROIObservationsSequence ©); @@ -163,7 +165,7 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -202,31 +204,31 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -239,13 +241,13 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -280,7 +282,7 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -288,7 +290,7 @@ class DCMTK_DCMRT_EXPORT DRTRelatedRTROIObservationsSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h index 471d72fd..62e96faf 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTRelatedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRTRelatedROISequence &operator=(const DRTRTRelatedROISequence ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTRTRelatedROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h index bb9f495f..b8255416 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -173,6 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRecordedRangeShifterSequence &operator=(const DRTRecordedRangeShifterSequence ©); @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -234,31 +236,31 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -271,13 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -312,7 +314,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -320,7 +322,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedRangeShifterSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h index 0b9a7ec7..9d22304f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -167,6 +168,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedRTPlanSequence &operator=(const DRTReferencedRTPlanSequence ©); @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -205,7 +207,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -228,31 +230,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -265,13 +267,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -306,7 +308,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -314,7 +316,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h index 73272e94..f85cb7f3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -166,6 +167,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedRTPlanSequenceInRTGeneralPlanModule &operator=(const DRTReferencedRTPlanSequenceInRTGeneralPlanModule ©); @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -227,31 +229,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -264,13 +266,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralPlanModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h index 7e5706f0..bb1bd8ec 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule &operator=(const DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordMo * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h index db4fe1fd..10c9a0f3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedRTPlanSequenceInRTImageModule &operator=(const DRTReferencedRTPlanSequenceInRTImageModule ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedRTPlanSequenceInRTImageModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h index 4ee81149..4d9e402a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRequestingServiceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRequestingServiceCodeSequence &operator=(const DRTRequestingServiceCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h index a0e546ea..7058f343 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -151,6 +152,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedSeriesSequence &operator=(const DRTReferencedSeriesSequence ©); @@ -173,7 +175,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -212,31 +214,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -249,13 +251,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -290,7 +292,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -298,7 +300,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSeriesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h index b6aabfd9..40d57a22 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -151,6 +152,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRTReferencedSeriesSequence &operator=(const DRTRTReferencedSeriesSequence ©); @@ -173,7 +175,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -212,31 +214,31 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -249,13 +251,13 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -290,7 +292,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -298,7 +300,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedSeriesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h index e7f5d447..d5393fe0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -205,6 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRangeShifterSequence &operator=(const DRTRangeShifterSequence ©); @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -266,31 +268,31 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -303,13 +305,13 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -344,7 +346,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h index 7476aafe..5325aad1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -189,6 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRangeShifterSettingsSequenceInRTIonBeamsModule &operator=(const DRTRangeShifterSettingsSequenceInRTIonBeamsModule ©); @@ -211,7 +213,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -250,31 +252,31 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -287,13 +289,13 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -328,7 +330,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -336,7 +338,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h index 51d0ec05..f42c7356 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule &operator=(const DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecor * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h index cc41a4fd..4dd3f2c7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSetupImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -205,6 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedSetupImageSequence &operator=(const DRTReferencedSetupImageSequence ©); @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -266,31 +268,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -303,13 +305,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -344,7 +346,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSetupImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h index 6339f1e3..8a15b8a6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRecordedSnoutSequence &operator=(const DRTRecordedSnoutSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h index 31275ea4..a8ea6dbf 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSOPSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -205,6 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedSOPSequence &operator=(const DRTReferencedSOPSequence ©); @@ -227,7 +229,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -266,31 +268,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -303,13 +305,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -344,7 +346,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -352,7 +354,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSOPSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h index 40fd3035..663bc9cd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSpatialRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedSpatialRegistrationSequence &operator=(const DRTReferencedSpatialRegistrationSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedSpatialRegistrationSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h index c8bb63cb..521323af 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedStudySequence &operator=(const DRTReferencedStudySequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStudySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h index 4bff060f..55ab3a09 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedStructureSetSequence &operator=(const DRTReferencedStructureSetSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedStructureSetSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h index 524f0aad..60119e15 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -167,6 +168,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRTReferencedStudySequence &operator=(const DRTRTReferencedStudySequence ©); @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -205,7 +207,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -228,31 +230,31 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -265,13 +267,13 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -306,7 +308,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -314,7 +316,7 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h index 0697321b..441371d3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -167,6 +168,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedTreatmentRecordSequenceInRTDoseModule &operator=(const DRTReferencedTreatmentRecordSequenceInRTDoseModule ©); @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -205,7 +207,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -228,31 +230,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -265,13 +267,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -306,7 +308,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -314,7 +316,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTDoseModule * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h index 2a18110d..cdef8bd0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule &operator=(const DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmen * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h index 61a716fa..2c54b3ec 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTReferencedVerificationImageSequence &operator=(const DRTReferencedVerificationImageSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedVerificationImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h index 1d1e6ff2..180c3885 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -235,6 +236,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRecordedWedgeSequence &operator=(const DRTRecordedWedgeSequence ©); @@ -257,7 +259,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -273,7 +275,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -296,31 +298,31 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -333,13 +335,13 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -374,7 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -382,7 +384,7 @@ class DCMTK_DCMRT_EXPORT DRTRecordedWedgeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h index b9f90371..0a164c81 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRealWorldValueMappingSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -92,6 +93,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence // --- get DICOM attribute values --- + /** get DoubleFloatRealWorldValueFirstValueMapped (0040,9214) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos = 0) const; + + /** get DoubleFloatRealWorldValueLastValueMapped (0040,9213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos = 0) const; + /** get LUTExplanation (0028,3003) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -169,6 +184,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence // --- set DICOM attribute values --- + /** set DoubleFloatRealWorldValueFirstValueMapped (0040,9214) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos = 0); + + /** set DoubleFloatRealWorldValueLastValueMapped (0040,9213) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos = 0); + /** set LUTExplanation (0028,3003) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -223,6 +252,10 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// DoubleFloatRealWorldValueFirstValueMapped (0040,9214) vr=FD, vm=1, type=1C + DcmFloatingPointDouble DoubleFloatRealWorldValueFirstValueMapped; + /// DoubleFloatRealWorldValueLastValueMapped (0040,9213) vr=FD, vm=1, type=1C + DcmFloatingPointDouble DoubleFloatRealWorldValueLastValueMapped; /// LUTExplanation (0028,3003) vr=LO, vm=1, type=1 DcmLongString LUTExplanation; /// LUTLabel (0040,9210) vr=SH, vm=1, type=1 @@ -231,13 +264,13 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence DRTMeasurementUnitsCodeSequence MeasurementUnitsCodeSequence; /// QuantityDefinitionSequence (0040,9220) vr=SQ, vm=1, type=3 DRTQuantityDefinitionSequence QuantityDefinitionSequence; - /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1 + /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1C DcmUnsignedShort RealWorldValueFirstValueMapped; /// RealWorldValueIntercept (0040,9224) vr=FD, vm=1, type=1C DcmFloatingPointDouble RealWorldValueIntercept; /// RealWorldValueLUTData (0040,9212) vr=FD, vm=1-n, type=1C DcmFloatingPointDouble RealWorldValueLUTData; - /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1 + /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1C DcmUnsignedShort RealWorldValueLastValueMapped; /// RealWorldValueSlope (0040,9225) vr=FD, vm=1, type=1C DcmFloatingPointDouble RealWorldValueSlope; @@ -262,6 +295,7 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTRealWorldValueMappingSequence &operator=(const DRTRealWorldValueMappingSequence ©); @@ -284,7 +318,7 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -300,7 +334,7 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -323,31 +357,31 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -360,13 +394,13 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -401,7 +435,7 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -409,7 +443,7 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h index 70c5a4cd..a1d9870d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTStudiesContainingOtherReferencedInstancesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -151,6 +152,7 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTStudiesContainingOtherReferencedInstancesSequence &operator=(const DRTStudiesContainingOtherReferencedInstancesSequence ©); @@ -173,7 +175,7 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -189,7 +191,7 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -212,31 +214,31 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -249,13 +251,13 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -290,7 +292,7 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -298,7 +300,7 @@ class DCMTK_DCMRT_EXPORT DRTStudiesContainingOtherReferencedInstancesSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h similarity index 91% rename from dcmrt/include/dcmtk/dcmrt/seq/drtarics.h rename to dcmrt/include/dcmtk/dcmrt/seq/drtscs.h index 6b218681..914b27af 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h @@ -1,31 +1,30 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * - * Header file for class DRTAdditionalRTROIIdentificationCodeSequence + * Header file for class DRTStrainCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ -#ifndef DRTARICS_H -#define DRTARICS_H +#ifndef DRTSCS_H +#define DRTSCS_H #include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence -#include "dcmtk/dcmrt/seq/drtporcs.h" // for PurposeOfReferenceCodeSequence -/** Interface class for AdditionalRTROIIdentificationCodeSequence (3006,00b9) +/** Interface class for StrainCodeSequence (0010,0219) */ -class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence +class DCMTK_DCMRT_EXPORT DRTStrainCodeSequence : protected DRTTypes { @@ -57,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -204,18 +211,6 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const { return EquivalentCodeSequence; } - /** get PurposeOfReferenceCodeSequence (0040,a170) - * @return reference to sequence element - */ - DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() - { return PurposeOfReferenceCodeSequence; } - - /** get PurposeOfReferenceCodeSequence (0040,a170) - * @return const reference to sequence element - */ - const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const - { return PurposeOfReferenceCodeSequence; } - // --- set DICOM attribute values --- /** set CodeMeaning (0008,0104) @@ -302,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -347,10 +349,10 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; - /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=1 - DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator URNCodeValue; @@ -361,21 +363,22 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence /** (default) constructor * @param emptyDefaultSequence internal flag used to mark the empty default sequence */ - DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence = OFFalse); + DRTStrainCodeSequence(const OFBool emptyDefaultSequence = OFFalse); /** copy constructor * @param copy sequence object to be copied */ - DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence ©); + DRTStrainCodeSequence(const DRTStrainCodeSequence ©); /** destructor */ - virtual ~DRTAdditionalRTROIIdentificationCodeSequence(); + virtual ~DRTStrainCodeSequence(); /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ - DRTAdditionalRTROIIdentificationCodeSequence &operator=(const DRTAdditionalRTROIIdentificationCodeSequence ©); + DRTStrainCodeSequence &operator=(const DRTStrainCodeSequence ©); // --- general methods --- @@ -396,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -412,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -435,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -472,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -513,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -521,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h index 52646b8f..77bfdac8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSeriesDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTSeriesDescriptionCodeSequence &operator=(const DRTSeriesDescriptionCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h index 06db62c6..031af003 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSetupDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -221,6 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTSetupDeviceSequence &operator=(const DRTSetupDeviceSequence ©); @@ -243,7 +245,7 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -259,7 +261,7 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -282,31 +284,31 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -319,13 +321,13 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -360,7 +362,7 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -368,7 +370,7 @@ class DCMTK_DCMRT_EXPORT DRTSetupDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h index a66db0df..01c6df29 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTShieldingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -198,6 +199,7 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTShieldingDeviceSequence &operator=(const DRTShieldingDeviceSequence ©); @@ -220,7 +222,7 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -236,7 +238,7 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -259,31 +261,31 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -296,13 +298,13 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -337,7 +339,7 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -345,7 +347,7 @@ class DCMTK_DCMRT_EXPORT DRTShieldingDeviceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h new file mode 100644 index 00000000..01dd96f6 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h @@ -0,0 +1,337 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTSourceInstanceSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTSINS_H +#define DRTSINS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtporcs.h" // for PurposeOfReferenceCodeSequence + + +/** Interface class for SourceInstanceSequence (0042,0013) + */ +class DCMTK_DCMRT_EXPORT DRTSourceInstanceSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get ReferencedSOPClassUID (0008,1150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getReferencedSOPClassUID(OFString &value, const signed long pos = 0) const; + + /** get ReferencedSOPInstanceUID (0008,1155) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getReferencedSOPInstanceUID(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get PurposeOfReferenceCodeSequence (0040,a170) + * @return reference to sequence element + */ + DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() + { return PurposeOfReferenceCodeSequence; } + + /** get PurposeOfReferenceCodeSequence (0040,a170) + * @return const reference to sequence element + */ + const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const + { return PurposeOfReferenceCodeSequence; } + + // --- set DICOM attribute values --- + + /** set ReferencedSOPClassUID (0008,1150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setReferencedSOPClassUID(const OFString &value, const OFBool check = OFTrue); + + /** set ReferencedSOPInstanceUID (0008,1155) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setReferencedSOPInstanceUID(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=3 + DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence; + /// ReferencedSOPClassUID (0008,1150) vr=UI, vm=1, type=1 + DcmUniqueIdentifier ReferencedSOPClassUID; + /// ReferencedSOPInstanceUID (0008,1155) vr=UI, vm=1, type=1 + DcmUniqueIdentifier ReferencedSOPInstanceUID; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTSourceInstanceSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTSourceInstanceSequence(const DRTSourceInstanceSequence ©); + + /** destructor + */ + virtual ~DRTSourceInstanceSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTSourceInstanceSequence &operator=(const DRTSourceInstanceSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h index 967bda6e..c99c72f2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSourceImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -238,6 +239,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTSourceImageSequence &operator=(const DRTSourceImageSequence ©); @@ -260,7 +262,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -276,7 +278,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -299,31 +301,31 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -336,13 +338,13 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -385,7 +387,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceImageSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h index db03a312..380d78b9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTSnoutSequence &operator=(const DRTSnoutSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTSnoutSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h index 6ec77c83..704f98f9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSegmentedPropertyCategoryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +297,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +349,8 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C @@ -359,6 +376,7 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTSegmentedPropertyCategoryCodeSequence &operator=(const DRTSegmentedPropertyCategoryCodeSequence ©); @@ -381,7 +399,7 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -397,7 +415,7 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -420,31 +438,31 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -457,13 +475,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -498,7 +516,7 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -506,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h index 075109f7..bbb3879f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTScheduledProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -57,6 +57,7 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -176,6 +177,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -302,6 +310,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -347,6 +362,8 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3 @@ -374,6 +391,7 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTScheduledProtocolCodeSequence &operator=(const DRTScheduledProtocolCodeSequence ©); @@ -396,7 +414,7 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -412,7 +430,7 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -435,31 +453,31 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -472,13 +490,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -513,7 +531,7 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -521,7 +539,7 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h new file mode 100644 index 00000000..d70af511 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h @@ -0,0 +1,337 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTSourcePatientGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTSPGIS_H +#define DRTSPGIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence + + +/** Interface class for SourcePatientGroupIdentificationSequence (0010,0026) + */ +class DCMTK_DCMRT_EXPORT DRTSourcePatientGroupIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get IssuerOfPatientID (0010,0021) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + + /** get PatientID (0010,0020) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPatientID(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return reference to sequence element + */ + DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() + { return IssuerOfPatientIDQualifiersSequence; } + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return const reference to sequence element + */ + const DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() const + { return IssuerOfPatientIDQualifiersSequence; } + + // --- set DICOM attribute values --- + + /** set IssuerOfPatientID (0010,0021) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + + /** set PatientID (0010,0020) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// IssuerOfPatientID (0010,0021) vr=LO, vm=1, type=3 + DcmLongString IssuerOfPatientID; + /// IssuerOfPatientIDQualifiersSequence (0010,0024) vr=SQ, vm=1, type=3 + DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; + /// PatientID (0010,0020) vr=LO, vm=1, type=1 + DcmLongString PatientID; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTSourcePatientGroupIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTSourcePatientGroupIdentificationSequence &operator=(const DRTSourcePatientGroupIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h new file mode 100644 index 00000000..95667d4f --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h @@ -0,0 +1,545 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTSegmentedPropertyTypeModifierCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTSPTCS_H +#define DRTSPTCS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence + + +/** Interface class for SegmentedPropertyTypeModifierCodeSequence (0062,0011) + */ +class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyTypeModifierCodeSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get CodeMeaning (0008,0104) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const; + + /** get CodeValue (0008,0100) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeValue(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeDesignator (0008,0102) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeVersion (0008,0103) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionCreatorUID (0008,010d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionFlag (0008,010b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupLocalVersion (0008,0107) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + + /** get LongCodeValue (0008,0119) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + + /** get URNCodeValue (0008,0120) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get EquivalentCodeSequence (0008,0121) + * @return reference to sequence element + */ + DRTEquivalentCodeSequence &getEquivalentCodeSequence() + { return EquivalentCodeSequence; } + + /** get EquivalentCodeSequence (0008,0121) + * @return const reference to sequence element + */ + const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const + { return EquivalentCodeSequence; } + + // --- set DICOM attribute values --- + + /** set CodeMeaning (0008,0104) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue); + + /** set CodeValue (0008,0100) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeDesignator (0008,0102) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeVersion (0008,0103) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionCreatorUID (0008,010d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionFlag (0008,010b) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupLocalVersion (0008,0107) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + + /** set LongCodeValue (0008,0119) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + + /** set URNCodeValue (0008,0120) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1 + DcmLongString CodeMeaning; + /// CodeValue (0008,0100) vr=SH, vm=1, type=1C + DcmShortString CodeValue; + /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeDesignator; + /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeVersion; + /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C + DcmUniqueIdentifier ContextGroupExtensionCreatorUID; + /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 + DcmCodeString ContextGroupExtensionFlag; + /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupLocalVersion; + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; + /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3 + DRTEquivalentCodeSequence EquivalentCodeSequence; + /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C + DcmUnlimitedCharacters LongCodeValue; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1C + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; + /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C + DcmUniversalResourceIdentifierOrLocator URNCodeValue; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence ©); + + /** destructor + */ + virtual ~DRTSegmentedPropertyTypeModifierCodeSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTSegmentedPropertyTypeModifierCodeSequence &operator=(const DRTSegmentedPropertyTypeModifierCodeSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtss.h index 418ba831..1fa19cc6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -462,6 +463,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTSourceSequence &operator=(const DRTSourceSequence ©); @@ -484,7 +486,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -500,7 +502,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -523,31 +525,31 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -560,13 +562,13 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -601,7 +603,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -609,7 +611,7 @@ class DCMTK_DCMRT_EXPORT DRTSourceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h new file mode 100644 index 00000000..37ed044f --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h @@ -0,0 +1,545 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTStrainSourceRegistryCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTSSRCS_H +#define DRTSSRCS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence + + +/** Interface class for StrainSourceRegistryCodeSequence (0010,0215) + */ +class DCMTK_DCMRT_EXPORT DRTStrainSourceRegistryCodeSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get CodeMeaning (0008,0104) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const; + + /** get CodeValue (0008,0100) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeValue(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeDesignator (0008,0102) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeVersion (0008,0103) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionCreatorUID (0008,010d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionFlag (0008,010b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupLocalVersion (0008,0107) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + + /** get LongCodeValue (0008,0119) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + + /** get URNCodeValue (0008,0120) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get EquivalentCodeSequence (0008,0121) + * @return reference to sequence element + */ + DRTEquivalentCodeSequence &getEquivalentCodeSequence() + { return EquivalentCodeSequence; } + + /** get EquivalentCodeSequence (0008,0121) + * @return const reference to sequence element + */ + const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const + { return EquivalentCodeSequence; } + + // --- set DICOM attribute values --- + + /** set CodeMeaning (0008,0104) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue); + + /** set CodeValue (0008,0100) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeDesignator (0008,0102) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeVersion (0008,0103) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionCreatorUID (0008,010d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionFlag (0008,010b) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupLocalVersion (0008,0107) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + + /** set LongCodeValue (0008,0119) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + + /** set URNCodeValue (0008,0120) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1 + DcmLongString CodeMeaning; + /// CodeValue (0008,0100) vr=SH, vm=1, type=1C + DcmShortString CodeValue; + /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeDesignator; + /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeVersion; + /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C + DcmUniqueIdentifier ContextGroupExtensionCreatorUID; + /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 + DcmCodeString ContextGroupExtensionFlag; + /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupLocalVersion; + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; + /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3 + DRTEquivalentCodeSequence EquivalentCodeSequence; + /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C + DcmUnlimitedCharacters LongCodeValue; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1C + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; + /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C + DcmUniversalResourceIdentifierOrLocator URNCodeValue; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence ©); + + /** destructor + */ + virtual ~DRTStrainSourceRegistryCodeSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTStrainSourceRegistryCodeSequence &operator=(const DRTStrainSourceRegistryCodeSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h index 5c878023..b19598bd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTStructureSetROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -261,6 +262,7 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTStructureSetROISequence &operator=(const DRTStructureSetROISequence ©); @@ -283,7 +285,7 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -299,7 +301,7 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -322,31 +324,31 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -359,13 +361,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -400,7 +402,7 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -408,7 +410,7 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetROISequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h new file mode 100644 index 00000000..82504061 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h @@ -0,0 +1,337 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTStrainStockSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTSSS_H +#define DRTSSS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtssrcs.h" // for StrainSourceRegistryCodeSequence + + +/** Interface class for StrainStockSequence (0010,0216) + */ +class DCMTK_DCMRT_EXPORT DRTStrainStockSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get StrainSource (0010,0217) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getStrainSource(OFString &value, const signed long pos = 0) const; + + /** get StrainStockNumber (0010,0214) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getStrainStockNumber(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get StrainSourceRegistryCodeSequence (0010,0215) + * @return reference to sequence element + */ + DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence() + { return StrainSourceRegistryCodeSequence; } + + /** get StrainSourceRegistryCodeSequence (0010,0215) + * @return const reference to sequence element + */ + const DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence() const + { return StrainSourceRegistryCodeSequence; } + + // --- set DICOM attribute values --- + + /** set StrainSource (0010,0217) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setStrainSource(const OFString &value, const OFBool check = OFTrue); + + /** set StrainStockNumber (0010,0214) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setStrainStockNumber(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// StrainSource (0010,0217) vr=LO, vm=1, type=1 + DcmLongString StrainSource; + /// StrainSourceRegistryCodeSequence (0010,0215) vr=SQ, vm=1, type=1 + DRTStrainSourceRegistryCodeSequence StrainSourceRegistryCodeSequence; + /// StrainStockNumber (0010,0214) vr=LO, vm=1, type=1 + DcmLongString StrainStockNumber; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTStrainStockSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTStrainStockSequence(const DRTStrainStockSequence ©); + + /** destructor + */ + virtual ~DRTStrainStockSequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTStrainStockSequence &operator=(const DRTStrainStockSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h b/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h index d226e577..c8cf934c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule &operator=(const DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTTreatmentMachineRecordMo * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h b/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h index f05b97a5..ce59b0f7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -230,6 +231,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule &operator=(const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule ©); @@ -252,7 +254,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -268,7 +270,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -291,31 +293,31 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -328,13 +330,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -369,7 +371,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -377,7 +379,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsM * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h b/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h index e0214802..8ba54a4f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -180,6 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTTreatmentSummaryCalculatedDoseReferenceSequence &operator=(const DRTTreatmentSummaryCalculatedDoseReferenceSequence ©); @@ -202,7 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -218,7 +220,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -241,31 +243,31 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -278,13 +280,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -319,7 +321,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -327,7 +329,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryCalculatedDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h b/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h index a76b0076..db9ac7b2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSessionIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -21,6 +21,7 @@ #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtas7.h" // for ApplicatorSequence #include "dcmtk/dcmrt/seq/drtbldls.h" // for BeamLimitingDeviceLeafPairsSequence +#include "dcmtk/dcmrt/seq/drtdddps.h" // for DeliveredDepthDoseParametersSequence #include "dcmtk/dcmrt/seq/drtgas.h" // for GeneralAccessorySequence #include "dcmtk/dcmrt/seq/drticpds.h" // for IonControlPointDeliverySequence #include "dcmtk/dcmrt/seq/drtrbls.h" // for RecordedBlockSequence @@ -70,6 +71,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -182,6 +184,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition getDeliveredTreatmentTime(Float64 &value, const unsigned long pos = 0) const; + /** get FixationEye (300a,0150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationEye(OFString &value, const signed long pos = 0) const; + /** get FixationLightAzimuthalAngle (300a,0356) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -196,6 +205,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition getFixationLightPolarAngle(Float32 &value, const unsigned long pos = 0) const; + /** get ModulatedScanModeType (300a,0309) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const; + /** get NumberOfBlocks (300a,00f0) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -516,6 +532,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence const DRTBeamLimitingDeviceLeafPairsSequence &getBeamLimitingDeviceLeafPairsSequence() const { return BeamLimitingDeviceLeafPairsSequence; } + /** get DeliveredDepthDoseParametersSequence (300a,0506) + * @return reference to sequence element + */ + DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence() + { return DeliveredDepthDoseParametersSequence; } + + /** get DeliveredDepthDoseParametersSequence (300a,0506) + * @return const reference to sequence element + */ + const DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence() const + { return DeliveredDepthDoseParametersSequence; } + /** get GeneralAccessorySequence (300a,0420) * @return reference to sequence element */ @@ -723,6 +751,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition setDeliveredTreatmentTime(const OFString &value, const OFBool check = OFTrue); + /** set FixationEye (300a,0150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue); + /** set FixationLightAzimuthalAngle (300a,0356) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -737,6 +772,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition setFixationLightPolarAngle(const Float32 value, const unsigned long pos = 0); + /** set ModulatedScanModeType (300a,0309) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue); + /** set NumberOfBlocks (300a,00f0) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -936,12 +978,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence DcmCodeString BeamType; /// CurrentFractionNumber (3008,0022) vr=IS, vm=1, type=2 DcmIntegerString CurrentFractionNumber; + /// DeliveredDepthDoseParametersSequence (300a,0506) vr=SQ, vm=1, type=3 + DRTDeliveredDepthDoseParametersSequence DeliveredDepthDoseParametersSequence; /// DeliveredPrimaryMeterset (3008,0036) vr=DS, vm=1, type=3 DcmDecimalString DeliveredPrimaryMeterset; /// DeliveredSecondaryMeterset (3008,0037) vr=DS, vm=1, type=3 DcmDecimalString DeliveredSecondaryMeterset; /// DeliveredTreatmentTime (3008,003b) vr=DS, vm=1, type=3 DcmDecimalString DeliveredTreatmentTime; + /// FixationEye (300a,0150) vr=CS, vm=1, type=3 + DcmCodeString FixationEye; /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3 DcmFloatingPointSingle FixationLightAzimuthalAngle; /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3 @@ -950,6 +996,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence DRTGeneralAccessorySequence GeneralAccessorySequence; /// IonControlPointDeliverySequence (3008,0041) vr=SQ, vm=1, type=1 DRTIonControlPointDeliverySequence IonControlPointDeliverySequence; + /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C + DcmCodeString ModulatedScanModeType; /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1 DcmIntegerString NumberOfBlocks; /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1 @@ -1045,6 +1093,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTTreatmentSessionIonBeamSequence &operator=(const DRTTreatmentSessionIonBeamSequence ©); @@ -1067,7 +1116,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -1083,7 +1132,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -1106,31 +1155,31 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -1143,13 +1192,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -1184,7 +1233,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -1192,7 +1241,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h b/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h index 6bab8b34..e3388751 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -180,6 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTTreatmentSummaryMeasuredDoseReferenceSequence &operator=(const DRTTreatmentSummaryMeasuredDoseReferenceSequence ©); @@ -202,7 +204,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -218,7 +220,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -241,31 +243,31 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -278,13 +280,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -319,7 +321,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -327,7 +329,7 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryMeasuredDoseReferenceSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttts.h b/dcmrt/include/dcmtk/dcmrt/seq/drttts.h index c3073b3f..272c3df8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -56,6 +56,7 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -383,6 +384,7 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTToleranceTableSequence &operator=(const DRTToleranceTableSequence ©); @@ -405,7 +407,7 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -421,7 +423,7 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -444,31 +446,31 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -481,13 +483,13 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -522,7 +524,7 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -530,7 +532,7 @@ class DCMTK_DCMRT_EXPORT DRTToleranceTableSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h new file mode 100644 index 00000000..990dc1a9 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h @@ -0,0 +1,320 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTUDISequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#ifndef DRTUDIS_H +#define DRTUDIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for UDISequence (0018,100a) + */ +class DCMTK_DCMRT_EXPORT DRTUDISequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + * @return reference to this object + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get DeviceDescription (0050,0020) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeviceDescription(OFString &value, const signed long pos = 0) const; + + /** get UniqueDeviceIdentifier (0018,1009) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getUniqueDeviceIdentifier(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set DeviceDescription (0050,0020) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeviceDescription(const OFString &value, const OFBool check = OFTrue); + + /** set UniqueDeviceIdentifier (0018,1009) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setUniqueDeviceIdentifier(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// DeviceDescription (0050,0020) vr=LO, vm=1, type=3 + DcmLongString DeviceDescription; + /// UniqueDeviceIdentifier (0018,1009) vr=UT, vm=1, type=1 + DcmUnlimitedText UniqueDeviceIdentifier; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTUDISequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTUDISequence(const DRTUDISequence ©); + + /** destructor + */ + virtual ~DRTUDISequence(); + + /** assigment operator + * @param copy sequence object to be copied + * @return reference to this object + */ + DRTUDISequence &operator=(const DRTUDISequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + size_t getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const size_t num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const size_t num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const size_t num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const size_t num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const size_t pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const size_t pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const size_t num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h index c2374d6b..6ff4cd38 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTVOILUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -166,6 +167,7 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTVOILUTSequence &operator=(const DRTVOILUTSequence ©); @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -204,7 +206,7 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -227,31 +229,31 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -264,13 +266,13 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -305,7 +307,7 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -313,7 +315,7 @@ class DCMTK_DCMRT_EXPORT DRTVOILUTSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h index 62fcd562..14bdd162 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -157,6 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTWedgePositionSequence &operator=(const DRTWedgePositionSequence ©); @@ -179,7 +181,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -195,7 +197,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -218,31 +220,31 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -255,13 +257,13 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -296,7 +298,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -304,7 +306,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgePositionSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h index e1c2a36e..65fb4837 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWADORetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -134,6 +135,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTWADORetrievalSequence &operator=(const DRTWADORetrievalSequence ©); @@ -156,7 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -195,31 +197,31 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -232,13 +234,13 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -273,7 +275,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -281,7 +283,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h index 964ba628..babd6c9e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWADORSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -134,6 +135,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTWADORSRetrievalSequence &operator=(const DRTWADORSRetrievalSequence ©); @@ -156,7 +158,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -195,31 +197,31 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -232,13 +234,13 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -273,7 +275,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -281,7 +283,7 @@ class DCMTK_DCMRT_EXPORT DRTWADORSRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtws.h index 215e57c6..e9129144 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtws.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtws.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -304,6 +305,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTWedgeSequence &operator=(const DRTWedgeSequence ©); @@ -326,7 +328,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -342,7 +344,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -365,31 +367,31 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -402,13 +404,13 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -443,7 +445,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -451,7 +453,7 @@ class DCMTK_DCMRT_EXPORT DRTWedgeSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h index 162768db..8bc7cc30 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTXDSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -55,6 +55,7 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence /** assigment operator * @param copy item object to be copied + * @return reference to this object */ Item &operator=(const Item ©); @@ -150,6 +151,7 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence /** assigment operator * @param copy sequence object to be copied + * @return reference to this object */ DRTXDSRetrievalSequence &operator=(const DRTXDSRetrievalSequence ©); @@ -172,7 +174,7 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence /** get number of items in the sequence * @return number of items */ - unsigned long getNumberOfItems() const; + size_t getNumberOfItems() const; /** goto first item in the sequence * @return status, EC_Normal if successful, an error code otherwise @@ -188,7 +190,7 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence * @param num number of the item to be selected (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num); + OFCondition gotoItem(const size_t num); /** get current item in the sequence * @param item reference to item pointer (result variable) @@ -211,31 +213,31 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence * @param item reference to item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getItem(const unsigned long num, Item *&item); + OFCondition getItem(const size_t num, Item *&item); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &getItem(const unsigned long num); + Item &getItem(const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &getItem(const unsigned long num) const; + const Item &getItem(const size_t num) const; /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return reference to specified item if successful, empty default item otherwise */ - Item &operator[](const unsigned long num); + Item &operator[](const size_t num); /** get particular item in the sequence * @param num number of the item to be retrieved (0..num-1) * @return const reference to specified item if successful, empty default item otherwise */ - const Item &operator[](const unsigned long num) const; + const Item &operator[](const size_t num) const; /** add new item to the end of this sequence * @param item reference to new item pointer (result variable) @@ -248,13 +250,13 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence * @param item reference to new item pointer (result variable) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition insertItem(const unsigned long pos, Item *&item); + OFCondition insertItem(const size_t pos, Item *&item); /** remove particular item from the sequence * @param pos position of the item to be removed (0..num-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition removeItem(const unsigned long pos); + OFCondition removeItem(const size_t pos); // --- input/output methods --- @@ -289,7 +291,7 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListIterator(Item *) &iterator); /** goto particular item in the sequence @@ -297,7 +299,7 @@ class DCMTK_DCMRT_EXPORT DRTXDSRetrievalSequence * @param iterator list iterator storing the position of the item * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition gotoItem(const unsigned long num, + OFCondition gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const; private: diff --git a/dcmrt/libsrc/CMakeLists.txt b/dcmrt/libsrc/CMakeLists.txt index c0447c38..ab283564 100644 --- a/dcmrt/libsrc/CMakeLists.txt +++ b/dcmrt/libsrc/CMakeLists.txt @@ -1,4 +1,4 @@ # create library from source files -DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtarics drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss drtdcs drtdias drtdimcs drtdimrs drtdirs drtdrs drtds drtdspcs drtdss drtdvhs drtdvrrs drteas drtecs drtes drtfds drtfes drtfgs drtfgss drtfms drtfsss drtgas drthsdrs drtiais drtians drtiblds drtibls drtibs drticpds drticps drtics drtiis drtipiqs drtircs drtiseis drtitts drtiwps drtiws drtlsds6 drtlsds7 drtlsds drtmacds drtmas drtmdrs drtmls drtmps drtmss drtmucs drtoas drtois drtopis drtos drtpbcs drtpcs drtpcxs drtpdecs drtpfms drtpics drtporcs drtporis drtppcs drtprsis drtpscs drtpsics drtpss drtpsss drtpvis drtqds drtras drtrbas2 drtrbas8 drtrbls drtrbos1 drtrbos6 drtrbos7 drtrbs2 drtrbs4 drtrbs8 drtrcdrs drtrcos drtrcps drtrcs drtrdros drtrdrs1 drtrdrs6 drtrdrs8 drtrds drtrecs drtrfgs drtrfors drtrics drtrims drtris drtrlsds drtrmdrs drtrms drtrmss6 drtrmss7 drtrpcs drtrpis drtrppcs drtrpphs drtrpps drtrppss drtrps drtrris1 drtrris6 drtrris9 drtrrms drtrros drtrrpcs drtrrros drtrrs drtrrshs drtrrtps3 drtrrtps4 drtrrtps5 drtrrtps drtrscs drtrsers drtrses drtrshs6 drtrshs7 drtrshs drtrsis drtrsns drtrsos drtrsrs drtrss drtrsss drtrsts drtrtrs2 drtrtrs4 drtrvis drtwrsrs drtrws drtrwvms drtscris drtsdcs drtsds drtshds drtsis drtsns drtspccs drtspcs drtss drtssrs drttms0 drttms9 drttscds drttsibs drttsmds drttts drtvls drtwps drtwrs drtws drtxrs) +DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtcgis drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss drtdcs drtdddps drtddps drtdias drtdimcs drtdimrs drtdirs drtdrs drtds drtdspcs drtdss drtdvhs drtdvrrs drteas drtecs drtes drtfds drtfes drtfgs drtfgss drtfms drtfsss drtgas drtgpis drthsdrs drtiais drtians drtiblds drtibls drtibs drticpds drticps drtics drtiis drtipiqs drtircs drtiseis drtitts drtiwps drtiws drtlsds6 drtlsds7 drtlsds drtmacds drtmas drtmdrs drtmls drtmps drtmris drtmss drtmucs drtoas drtois drtopis drtos drtpbcs drtpcs drtpcxs drtpdecs drtpdeds drtpfms drtpics drtporcs drtporis drtppcs drtprsis drtpscs drtpsics drtpss drtpsss drtpvis drtqds drtras drtrbas2 drtrbas8 drtrbls drtrbos1 drtrbos6 drtrbos7 drtrbs2 drtrbs4 drtrbs8 drtrcdrs drtrcos drtrcps drtrcs drtrdros drtrdrs1 drtrdrs6 drtrdrs8 drtrds drtrecs drtrfgs drtrfors drtrics drtrims drtris drtrlsds drtrmdrs drtrms drtrmss6 drtrmss7 drtrpcs drtrpis drtrppcs drtrpphs drtrpps drtrppss drtrps drtrris1 drtrris6 drtrris9 drtrrms drtrros drtrrpcs drtrrros drtrrs drtrrshs drtrrtps3 drtrrtps4 drtrrtps5 drtrrtps drtrscs drtrsers drtrses drtrshs6 drtrshs7 drtrshs drtrsis drtrsns drtrsos drtrsrs drtrss drtrsss drtrsts drtrtrs2 drtrtrs4 drtrvis drtwrsrs drtrws drtrwvms drtscris drtscs drtsdcs drtsds drtshds drtsins drtsis drtsns drtspccs drtspcs drtspgis drtsptcs drtss drtssrcs drtssrs drtsss drttms0 drttms9 drttscds drttsibs drttsmds drttts drtudis drtvls drtwps drtwrs drtws drtxrs) DCMTK_TARGET_LINK_MODULES(dcmrt ofstd oflog dcmdata dcmimgle) diff --git a/dcmrt/libsrc/Makefile.dep b/dcmrt/libsrc/Makefile.dep index e85cb721..ccb5d231 100644 --- a/dcmrt/libsrc/Makefile.dep +++ b/dcmrt/libsrc/Makefile.dep @@ -119,7 +119,8 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ @@ -129,16 +130,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -152,17 +154,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -184,9 +186,13 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtssrs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/drmimage.h ../include/dcmtk/dcmrt/drtimage.h \ @@ -310,6 +316,7 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h \ ../include/dcmtk/dcmrt/seq/drtcbars.h \ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \ @@ -324,15 +331,16 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtblds5.h \ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ - ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h \ ../include/dcmtk/dcmrt/seq/drtmacds.h \ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ @@ -348,7 +356,9 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ @@ -369,8 +379,12 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drtvls.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h \ ../../dcmimgle/include/dcmtk/dcmimgle/dcmimage.h \ ../../dcmimgle/include/dcmtk/dcmimgle/dimoimg.h \ ../../dcmimgle/include/dcmtk/dcmimgle/diimage.h \ @@ -525,27 +539,30 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ ../include/dcmtk/dcmrt/seq/drtbvcps.h \ ../include/dcmtk/dcmrt/seq/drtrbas8.h \ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ @@ -561,8 +578,11 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -572,18 +592,22 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ ../include/dcmtk/dcmrt/seq/drttts.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drmsrch.h + ../include/dcmtk/dcmrt/seq/drttms9.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/drmstrct.h ../include/dcmtk/dcmrt/drtstrct.h \ ../include/dcmtk/dcmrt/drttypes.h \ @@ -705,23 +729,25 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -735,19 +761,23 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtrros.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ ../include/dcmtk/dcmrt/seq/drtrses.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -756,15 +786,20 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrps.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drmsrch.h + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h drtaadcs.o: drtaadcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -1459,123 +1494,6 @@ drtajcs.o: drtajcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtarics.o: drtarics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ - ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ - ../../ofstd/include/dcmtk/ofstd/ofcast.h \ - ../../ofstd/include/dcmtk/ofstd/ofexport.h \ - ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmrt/drttypes.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofvector.h \ - ../../oflog/include/dcmtk/oflog/oflog.h \ - ../../oflog/include/dcmtk/oflog/logger.h \ - ../../oflog/include/dcmtk/oflog/config.h \ - ../../oflog/include/dcmtk/oflog/config/defines.h \ - ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ - ../../oflog/include/dcmtk/oflog/loglevel.h \ - ../../oflog/include/dcmtk/oflog/tstring.h \ - ../../oflog/include/dcmtk/oflog/tchar.h \ - ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ - ../../oflog/include/dcmtk/oflog/appender.h \ - ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ - ../../oflog/include/dcmtk/oflog/layout.h \ - ../../oflog/include/dcmtk/oflog/streams.h \ - ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ - ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ - ../../oflog/include/dcmtk/oflog/spi/filter.h \ - ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ - ../../oflog/include/dcmtk/oflog/spi/logfact.h \ - ../../oflog/include/dcmtk/oflog/logmacro.h \ - ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ - ../../oflog/include/dcmtk/oflog/tracelog.h \ - ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ - ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ - ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../../ofstd/include/dcmtk/ofstd/ofstd.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ - ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ - ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ - ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ - ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h drtas1.o: drtas1.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtas1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -4709,8 +4627,8 @@ drtces.o: drtces.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h -drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtchs.h \ +drtcgis.o: drtcgis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -4823,12 +4741,9 @@ drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbcps.h \ - ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ - ../include/dcmtk/dcmrt/seq/drtcshs.h -drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtchs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -4942,12 +4857,11 @@ drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtbcps.h \ + ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ + ../include/dcmtk/dcmrt/seq/drtcshs.h +drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5060,9 +4974,13 @@ drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5175,10 +5093,9 @@ drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcos.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5291,9 +5208,10 @@ drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcpas.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5407,8 +5325,8 @@ drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h \ +drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcpas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5521,11 +5439,9 @@ drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5639,11 +5555,10 @@ drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h -drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcs.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5757,9 +5672,11 @@ drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h -drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h +drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5872,9 +5789,10 @@ drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcshs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtcis.h +drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5988,8 +5906,8 @@ drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ +drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcshs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6103,8 +6021,8 @@ drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h \ +drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6217,10 +6135,9 @@ drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6335,8 +6252,8 @@ drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h \ +drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6449,9 +6366,10 @@ drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdddps.o: drtdddps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6564,10 +6482,9 @@ drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtddps.o: drtddps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtddps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6681,8 +6598,8 @@ drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ +drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6796,14 +6713,16 @@ drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \ +drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -6830,7 +6749,6 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -6910,82 +6828,9 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdvhs.h \ - ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpsss.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ - ../include/dcmtk/dcmrt/seq/drtrdros.h \ - ../include/dcmtk/dcmrt/seq/drtrwvms.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrfors.h \ - ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps.h \ - ../include/dcmtk/dcmrt/seq/drtrfgs.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h -drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7099,8 +6944,8 @@ drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtds.h \ +drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7213,18 +7058,15 @@ drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -7251,6 +7093,7 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -7330,9 +7173,88 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdvhs.h \ + ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpsss.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtrdros.h \ + ../include/dcmtk/dcmrt/seq/drtrwvms.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrfors.h \ + ../include/dcmtk/dcmrt/seq/drtrsts.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps.h \ + ../include/dcmtk/dcmrt/seq/drtrfgs.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7445,11 +7367,9 @@ drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdvhs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7563,9 +7483,9 @@ drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdvrrs.h -drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7678,9 +7598,10 @@ drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drteas.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7793,9 +7714,11 @@ drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdvhs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7908,9 +7831,10 @@ drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtes.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdvrrs.h +drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8023,15 +7947,11 @@ drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ - ../include/dcmtk/dcmrt/seq/drtblds5.h \ - ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h -drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drteas.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ @@ -8143,8 +8063,8 @@ drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfes.h \ +drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8258,8 +8178,8 @@ drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfgs.h \ +drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtes.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8373,13 +8293,12 @@ drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrbs8.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h -drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfgss.h \ + ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ + ../include/dcmtk/dcmrt/seq/drtblds5.h \ + ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h +drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8492,10 +8411,9 @@ drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtfsss.h -drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfms.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfes.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8609,8 +8527,8 @@ drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfsss.h \ +drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfgs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8723,9 +8641,14 @@ drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h +drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfgss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8838,9 +8761,10 @@ drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtfsss.h +drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8954,8 +8878,8 @@ drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ +drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9069,8 +8993,8 @@ drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ +drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9184,8 +9108,8 @@ drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiblds.h \ +drtgpis.o: drtgpis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9298,9 +9222,13 @@ drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtibls.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9413,10 +9341,9 @@ drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbss.h -drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtibs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9529,26 +9456,9 @@ drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtiblds.h \ - ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ - ../include/dcmtk/dcmrt/seq/drticps.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds6.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ - ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ - ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ - ../include/dcmtk/dcmrt/seq/drtrshs.h \ - ../include/dcmtk/dcmrt/seq/drtrbos6.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h \ - ../include/dcmtk/dcmrt/seq/drtrris6.h \ - ../include/dcmtk/dcmrt/seq/drtsns.h -drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drticpds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9661,15 +9571,9 @@ drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtcpas.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ - ../include/dcmtk/dcmrt/seq/drtrmss7.h \ - ../include/dcmtk/dcmrt/seq/drtrshs7.h -drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drticps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiblds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9782,15 +9686,9 @@ drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds6.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h -drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtics.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtibls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9904,9 +9802,9 @@ drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h \ + ../include/dcmtk/dcmrt/seq/drtbss.h +drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtibs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10019,15 +9917,35 @@ drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtddps.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtiblds.h \ + ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ + ../include/dcmtk/dcmrt/seq/drticps.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds6.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ + ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ + ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ + ../include/dcmtk/dcmrt/seq/drtrshs.h \ + ../include/dcmtk/dcmrt/seq/drtrbos6.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h \ + ../include/dcmtk/dcmrt/seq/drtrris6.h \ + ../include/dcmtk/dcmrt/seq/drtsns.h +drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drticpds.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -10054,7 +9972,6 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -10134,82 +10051,24 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h \ - ../include/dcmtk/dcmrt/seq/drtcbars.h \ - ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ - ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \ - ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ - ../include/dcmtk/dcmrt/seq/drtblds5.h \ - ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ - ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtmacds.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrwvms.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drtvls.h -drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtcpas.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ + ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtrmss7.h \ + ../include/dcmtk/dcmrt/seq/drtrshs7.h +drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drticps.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -10236,7 +10095,6 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -10316,95 +10174,1666 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtiblds.h \ - ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ - ../include/dcmtk/dcmrt/seq/drticps.h \ ../include/dcmtk/dcmrt/seq/drtbldps.h \ ../include/dcmtk/dcmrt/seq/drtiwps.h \ ../include/dcmtk/dcmrt/seq/drtlsds6.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ - ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ - ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ - ../include/dcmtk/dcmrt/seq/drtrshs.h \ - ../include/dcmtk/dcmrt/seq/drtrbos6.h \ - ../include/dcmtk/dcmrt/seq/drtrris6.h \ - ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \ - ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h -drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h +drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtics.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h \ + ../include/dcmtk/dcmrt/seq/drtcbars.h \ + ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ + ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \ + ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \ + ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ + ../include/dcmtk/dcmrt/seq/drtblds5.h \ + ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ + ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h \ + ../include/dcmtk/dcmrt/seq/drtmacds.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrwvms.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h +drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ + ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \ + ../include/dcmtk/dcmrt/seq/drtddps.h ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtiblds.h \ + ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ + ../include/dcmtk/dcmrt/seq/drticps.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds6.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ + ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ + ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ + ../include/dcmtk/dcmrt/seq/drtrshs.h \ + ../include/dcmtk/dcmrt/seq/drtrbos6.h \ + ../include/dcmtk/dcmrt/seq/drtrris6.h \ + ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \ + ../include/dcmtk/dcmrt/seq/drtbldts.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcdrs.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \ + ../include/dcmtk/dcmrt/seq/drtfsss.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmdrs.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drttms0.h \ + ../include/dcmtk/dcmrt/seq/drttsibs.h \ + ../include/dcmtk/dcmrt/seq/drtas7.h \ + ../include/dcmtk/dcmrt/seq/drtbldls.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drticpds.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtcpas.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ + ../include/dcmtk/dcmrt/seq/drtrmss7.h \ + ../include/dcmtk/dcmrt/seq/drtrshs7.h \ + ../include/dcmtk/dcmrt/seq/drtrbls.h \ + ../include/dcmtk/dcmrt/seq/drtrcos.h \ + ../include/dcmtk/dcmrt/seq/drtrlsds.h \ + ../include/dcmtk/dcmrt/seq/drtrrms.h \ + ../include/dcmtk/dcmrt/seq/drtrrshs.h \ + ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \ + ../include/dcmtk/dcmrt/seq/drtrbos7.h \ + ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ + ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ + ../include/dcmtk/dcmrt/seq/drtrvis.h \ + ../include/dcmtk/dcmrt/seq/drttscds.h \ + ../include/dcmtk/dcmrt/seq/drttsmds.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtircs.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtitts.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtbldts.h +drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiws.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtlsds.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtlsds6.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -10431,7 +11860,6 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -10510,94 +11938,9 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcdrs.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \ - ../include/dcmtk/dcmrt/seq/drtfsss.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmdrs.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drttms0.h \ - ../include/dcmtk/dcmrt/seq/drttsibs.h \ - ../include/dcmtk/dcmrt/seq/drtas7.h \ - ../include/dcmtk/dcmrt/seq/drtbldls.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drticpds.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtcpas.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ - ../include/dcmtk/dcmrt/seq/drtrmss7.h \ - ../include/dcmtk/dcmrt/seq/drtrshs7.h \ - ../include/dcmtk/dcmrt/seq/drtrbls.h \ - ../include/dcmtk/dcmrt/seq/drtrcos.h \ - ../include/dcmtk/dcmrt/seq/drtrlsds.h \ - ../include/dcmtk/dcmrt/seq/drtrrms.h \ - ../include/dcmtk/dcmrt/seq/drtrrshs.h \ - ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \ - ../include/dcmtk/dcmrt/seq/drtrbos7.h \ - ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ - ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ - ../include/dcmtk/dcmrt/seq/drtrvis.h \ - ../include/dcmtk/dcmrt/seq/drttscds.h \ - ../include/dcmtk/dcmrt/seq/drttsmds.h -drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtlsds7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10710,12 +12053,9 @@ drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ - ../include/dcmtk/dcmrt/seq/drtajcs.h -drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtircs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmacds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10828,9 +12168,10 @@ drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h +drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10944,8 +12285,8 @@ drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtitts.h \ +drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11058,10 +12399,9 @@ drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldts.h -drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11175,8 +12515,8 @@ drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiws.h \ +drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11290,8 +12630,8 @@ drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtlsds.h \ +drtmris.o: drtmris.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmris.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11405,8 +12745,8 @@ drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtlsds6.h \ +drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11520,8 +12860,8 @@ drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtlsds7.h \ +drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11634,9 +12974,10 @@ drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmacds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11750,9 +13091,9 @@ drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h -drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h +drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11865,9 +13206,11 @@ drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11980,9 +13323,13 @@ drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmls.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12095,9 +13442,11 @@ drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h +drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12209,10 +13558,11 @@ drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12325,9 +13675,10 @@ drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12441,9 +13792,13 @@ drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12557,9 +13912,10 @@ drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h -drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h +drtpdeds.o: drtpdeds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12672,11 +14028,9 @@ drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12789,13 +14143,9 @@ drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ - ../include/dcmtk/dcmrt/seq/drtajcs.h -drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtos.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12908,17 +14258,16 @@ drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -12945,6 +14294,7 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -13024,9 +14374,99 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ + ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ + ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ + ../include/dcmtk/dcmrt/seq/drtcshs.h \ + ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \ + ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \ + ../include/dcmtk/dcmrt/seq/drtblds1.h \ + ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \ + ../include/dcmtk/dcmrt/seq/drtcps.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h \ + ../include/dcmtk/dcmrt/seq/drtrbos1.h \ + ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ + ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drttts.h \ + ../include/dcmtk/dcmrt/seq/drtbldts.h \ + ../include/dcmtk/dcmrt/seq/drttms9.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13141,8 +14581,8 @@ drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h \ +drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13256,13 +14696,10 @@ drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13376,9 +14813,13 @@ drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h -drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13491,9 +14932,11 @@ drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13608,14 +15051,16 @@ drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \ +drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -13642,7 +15087,6 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -13722,89 +15166,9 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ - ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ - ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ - ../include/dcmtk/dcmrt/seq/drtcshs.h \ - ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \ - ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \ - ../include/dcmtk/dcmrt/seq/drtblds1.h \ - ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \ - ../include/dcmtk/dcmrt/seq/drtcps.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h \ - ../include/dcmtk/dcmrt/seq/drtrbos1.h \ - ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drttts.h \ - ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drttms9.h -drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13918,9 +15282,11 @@ drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h +drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14033,11 +15399,9 @@ drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpvis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14150,14 +15514,9 @@ drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14271,10 +15630,12 @@ drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14388,9 +15749,18 @@ drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14503,10 +15873,9 @@ drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14619,12 +15988,9 @@ drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h -drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpsss.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14738,8 +16104,8 @@ drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpvis.h \ +drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbos1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14853,8 +16219,8 @@ drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h \ +drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbos6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14967,13 +16333,9 @@ drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbos7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15086,19 +16448,9 @@ drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15211,9 +16563,10 @@ drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h +drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbs4.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15326,9 +16679,10 @@ drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbls.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h +drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbs8.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15441,9 +16795,10 @@ drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbos1.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h +drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15557,8 +16912,8 @@ drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbos6.h \ +drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15672,8 +17027,8 @@ drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbos7.h \ +drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15787,8 +17142,8 @@ drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ +drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15902,9 +17257,9 @@ drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h -drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbs4.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h +drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16017,10 +17372,9 @@ drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h -drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16133,10 +17487,9 @@ drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h -drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16250,8 +17603,8 @@ drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcos.h \ +drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16365,8 +17718,8 @@ drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ +drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16480,8 +17833,8 @@ drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h \ +drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrecs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16594,10 +17947,9 @@ drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h -drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdros.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrfgs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16710,9 +18062,12 @@ drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h +drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16825,9 +18180,11 @@ drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrsts.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h +drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16940,9 +18297,11 @@ drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h +drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17055,9 +18414,11 @@ drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtris.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17170,9 +18531,11 @@ drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrecs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrlsds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17286,8 +18649,8 @@ drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrfgs.h \ +drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17400,12 +18763,9 @@ drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h -drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrfors.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17518,11 +18878,9 @@ drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h -drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17635,10 +18993,9 @@ drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrmss7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17751,11 +19108,9 @@ drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtris.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17869,10 +19224,9 @@ drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrlsds.h \ +drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17985,9 +19339,11 @@ drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18100,9 +19456,10 @@ drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrms.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18215,9 +19572,14 @@ drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h +drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18330,9 +19692,10 @@ drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrmss7.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrecs.h +drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18446,8 +19809,8 @@ drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ +drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18560,10 +19923,9 @@ drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrris1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18676,11 +20038,9 @@ drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrris6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18793,10 +20153,9 @@ drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrris9.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18909,14 +20268,9 @@ drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h -drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19029,10 +20383,9 @@ drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrecs.h -drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrros.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19145,9 +20498,16 @@ drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrpps.h \ + ../include/dcmtk/dcmrt/seq/drtrecs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrrros.h \ + ../include/dcmtk/dcmrt/seq/drtspccs.h +drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19260,9 +20620,10 @@ drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrris1.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19376,8 +20737,8 @@ drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrris6.h \ +drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19491,8 +20852,8 @@ drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrris9.h \ +drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrshs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19606,8 +20967,8 @@ drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrms.h \ +drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19720,9 +21081,13 @@ drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrros.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrfgs.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h +drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19835,17 +21200,9 @@ drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpps.h \ - ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ - ../include/dcmtk/dcmrt/seq/drtrrros.h \ - ../include/dcmtk/dcmrt/seq/drtspccs.h -drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19958,10 +21315,9 @@ drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrros.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20075,8 +21431,8 @@ drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrs.h \ +drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20189,9 +21545,10 @@ drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrshs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20304,9 +21661,12 @@ drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20420,12 +21780,9 @@ drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrfgs.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h -drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ + ../include/dcmtk/dcmrt/seq/drtcis.h +drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrshs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20539,8 +21896,8 @@ drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ +drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20654,8 +22011,8 @@ drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ +drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrshs7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20769,8 +22126,8 @@ drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ +drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20883,10 +22240,9 @@ drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsns.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20999,12 +22355,9 @@ drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtris.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21117,10 +22470,9 @@ drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h -drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrshs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21234,8 +22586,8 @@ drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ +drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21349,8 +22701,8 @@ drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrshs7.h \ +drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21464,8 +22816,8 @@ drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h \ +drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsts.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21578,9 +22930,10 @@ drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsns.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h +drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21693,9 +23046,11 @@ drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h +drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21809,8 +23164,8 @@ drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsrs.h \ +drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrvis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21924,8 +23279,8 @@ drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h \ +drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrws.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22039,8 +23394,8 @@ drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsss.h \ +drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22153,9 +23508,13 @@ drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsts.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22269,9 +23628,12 @@ drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h -drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtscs.o: drtscs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22385,10 +23747,9 @@ drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h -drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22501,9 +23862,10 @@ drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrvis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22617,8 +23979,8 @@ drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrws.h \ +drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22732,8 +24094,8 @@ drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrwvms.h \ +drtsins.o: drtsins.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22847,12 +24209,10 @@ drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22966,12 +24326,10 @@ drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ +drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsns.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23084,10 +24442,9 @@ drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtspccs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23200,9 +24557,10 @@ drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23315,9 +24673,14 @@ drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtspgis.o: drtspgis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23431,10 +24794,12 @@ drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsns.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drtsptcs.o: drtsptcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23547,9 +24912,10 @@ drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtspccs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23662,10 +25028,9 @@ drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtssrcs.o: drtssrcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23779,13 +25144,9 @@ drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23898,9 +25259,10 @@ drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h +drtsss.o: drtsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -24014,7 +25376,8 @@ drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/drtstrct.h ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ @@ -24135,23 +25498,25 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -24165,19 +25530,23 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtrros.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ ../include/dcmtk/dcmrt/seq/drtrses.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -24186,15 +25555,20 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrps.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h drttms0.o: drttms0.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttms0.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -24545,24 +25919,27 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \ ../include/dcmtk/dcmrt/seq/drtfsss.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -24575,8 +25952,11 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -24586,17 +25966,22 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h \ ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ ../include/dcmtk/dcmrt/seq/drttscds.h \ - ../include/dcmtk/dcmrt/seq/drttsmds.h + ../include/dcmtk/dcmrt/seq/drttsmds.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h drttscds.o: drttscds.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttscds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -24829,12 +26214,15 @@ drttsibs.o: drttsibs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtas7.h \ ../include/dcmtk/dcmrt/seq/drtbldls.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drticpds.h \ ../include/dcmtk/dcmrt/seq/drtbldps.h \ ../include/dcmtk/dcmrt/seq/drtcpas.h \ ../include/dcmtk/dcmrt/seq/drtiwps.h \ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ + ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \ ../include/dcmtk/dcmrt/seq/drtrmss7.h \ ../include/dcmtk/dcmrt/seq/drtrshs7.h \ ../include/dcmtk/dcmrt/seq/drtrbls.h \ @@ -25192,6 +26580,121 @@ drttypes.o: drttypes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtudis.o: drtudis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h drtvls.o: drtvls.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtvls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ diff --git a/dcmrt/libsrc/Makefile.in b/dcmrt/libsrc/Makefile.in index 30c5409a..56cf836c 100644 --- a/dcmrt/libsrc/Makefile.in +++ b/dcmrt/libsrc/Makefile.in @@ -23,35 +23,38 @@ LOCALDEFS = objs = drtdose.o drtimage.o drtplan.o drtstrct.o drttreat.o drtionpl.o drtiontr.o \ drmdose.o drmimage.o drmplan.o drmstrct.o drttypes.o \ - drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtarics.o \ - drtas1.o drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o \ - drtbcps.o drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o \ - drtblds6.o drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o \ - drtbvcps.o drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtchs.o \ + drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtas1.o \ + drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o drtbcps.o \ + drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o drtblds6.o \ + drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o drtbvcps.o \ + drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtcgis.o drtchs.o \ drtcims.o drtcis.o drtcncs.o drtcos.o drtcpas.o drtcpis.o drtcps.o \ - drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdias.o \ - drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o drtdspcs.o drtdss.o \ - drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o drtfds.o drtfes.o drtfgs.o \ - drtfgss.o drtfms.o drtfsss.o drtgas.o drthsdrs.o drtiais.o drtians.o \ - drtiblds.o drtibls.o drtibs.o drticpds.o drticps.o drtics.o drtiis.o \ - drtipiqs.o drtircs.o drtiseis.o drtitts.o drtiwps.o drtiws.o drtlsds6.o \ - drtlsds7.o drtlsds.o drtmacds.o drtmas.o drtmdrs.o drtmls.o drtmps.o \ - drtmss.o drtmucs.o drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o \ - drtpcxs.o drtpdecs.o drtpfms.o drtpics.o drtporcs.o drtporis.o drtppcs.o \ - drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o drtqds.o \ - drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o drtrbos7.o \ - drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o drtrcs.o \ - drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o drtrfgs.o \ - drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o drtrms.o \ - drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o drtrpps.o \ - drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o drtrros.o \ - drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o drtrrtps4.o \ - drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o drtrshs6.o \ - drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o drtrss.o \ - drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o drtrwvms.o \ - drtscris.o drtsdcs.o drtsds.o drtshds.o drtsis.o drtsns.o drtspccs.o \ - drtspcs.o drtss.o drtssrs.o drttms0.o drttms9.o drttscds.o drttsibs.o \ - drttsmds.o drttts.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o drtws.o drtxrs.o + drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdddps.o \ + drtddps.o drtdias.o drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o \ + drtdspcs.o drtdss.o drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o \ + drtfds.o drtfes.o drtfgs.o drtfgss.o drtfms.o drtfsss.o drtgas.o \ + drtgpis.o drthsdrs.o drtiais.o drtians.o drtiblds.o drtibls.o drtibs.o \ + drticpds.o drticps.o drtics.o drtiis.o drtipiqs.o drtircs.o drtiseis.o \ + drtitts.o drtiwps.o drtiws.o drtlsds6.o drtlsds7.o drtlsds.o drtmacds.o \ + drtmas.o drtmdrs.o drtmls.o drtmps.o drtmris.o drtmss.o drtmucs.o \ + drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o drtpcxs.o \ + drtpdecs.o drtpdeds.o drtpfms.o drtpics.o drtporcs.o drtporis.o \ + drtppcs.o drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o \ + drtqds.o drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o \ + drtrbos7.o drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o \ + drtrcs.o drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o \ + drtrfgs.o drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o \ + drtrms.o drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o \ + drtrpps.o drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o \ + drtrros.o drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o \ + drtrrtps4.o drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o \ + drtrshs6.o drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o \ + drtrss.o drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o \ + drtrwvms.o drtscris.o drtscs.o drtsdcs.o drtsds.o drtshds.o drtsins.o \ + drtsis.o drtsns.o drtspccs.o drtspcs.o drtspgis.o drtsptcs.o drtss.o \ + drtssrcs.o drtssrs.o drtsss.o drttms0.o drttms9.o drttscds.o drttsibs.o \ + drttsmds.o drttts.o drtudis.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o \ + drtws.o drtxrs.o library = libdcmrt.$(LIBEXT) diff --git a/dcmrt/libsrc/drmimage.cc b/dcmrt/libsrc/drmimage.cc index 4387f563..4a2f733f 100644 --- a/dcmrt/libsrc/drmimage.cc +++ b/dcmrt/libsrc/drmimage.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2012, OFFIS e.V. + * Copyright (C) 2012-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -102,5 +102,5 @@ OFCondition DRTImage::getOutputData(OFVector& result, const unsigned long const unsigned long size = image_->getOutputDataSize(bits); result.resize(size); - return statusToCondition(image_->getOutputData(&result[0], result.size(), bits, frame)); + return statusToCondition(image_->getOutputData(&result[0], size, bits, frame)); } diff --git a/dcmrt/libsrc/drtaadcs.cc b/dcmrt/libsrc/drtaadcs.cc index c25a13a2..f3bb5845 100644 --- a/dcmrt/libsrc/drtaadcs.cc +++ b/dcmrt/libsrc/drtaadcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAssigningAgencyOrDepartmentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const OFBool emptyDefault EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartment EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAssigningAgencyOrDepartmentCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAssigningAgencyOrDepartmentCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::read(DcmItem &item getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::write(DcmItem &ite addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResource } +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResource } +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTAssigningAgencyOrDepartmentCodeSequence::isValid() const } -unsigned long DRTAssigningAgencyOrDepartmentCodeSequence::getNumberOfItems() const +size_t DRTAssigningAgencyOrDepartmentCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoNextItem() } -OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const unsigned } -OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const unsigned } -OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepa } -OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::getItem(const unsigned l } -DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::getItem(const unsigned long num) +DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartment } -const DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::getItem(const unsigned long num) const +const DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepa } -DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::operator[](const unsigned long num) +DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::operator[](const unsigned long num) const +const DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartmentCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::addItem(Item *&item) } -OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::insertItem(const unsigne } -OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtadcs.cc b/dcmrt/libsrc/drtadcs.cc index a350a8e8..219c58b1 100644 --- a/dcmrt/libsrc/drtadcs.cc +++ b/dcmrt/libsrc/drtadcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAdmittingDiagnosesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAdmittingDiagnosesCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAdmittingDiagnosesCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdmittingDiagnosesCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdmittingDiagnosesCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdmittingDiagnosesCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdmittingDiagnosesCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResource(const OF } +OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTAdmittingDiagnosesCodeSequence::isValid() const } -unsigned long DRTAdmittingDiagnosesCodeSequence::getNumberOfItems() const +size_t DRTAdmittingDiagnosesCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::gotoNextItem() } -OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTAdmittingDiagnosesCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence } -OFCondition DRTAdmittingDiagnosesCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTAdmittingDiagnosesCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::getItem(const unsigned long num, } -DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::getItem(const unsigned long num) +DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::getI } -const DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::getItem(const unsigned long num) const +const DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence } -DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::operator[](const unsigned long num) +DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::operator[](const unsigned long num) const +const DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::addItem(Item *&item) } -OFCondition DRTAdmittingDiagnosesCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTAdmittingDiagnosesCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::insertItem(const unsigned long po } -OFCondition DRTAdmittingDiagnosesCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTAdmittingDiagnosesCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtads.cc b/dcmrt/libsrc/drtads.cc index b5f23b84..bf617978 100644 --- a/dcmrt/libsrc/drtads.cc +++ b/dcmrt/libsrc/drtads.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAdditionalDrugSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTAdditionalDrugSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAdditionalDrugSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::Item::operator=(cons EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAdditionalDrugSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAdditionalDrugSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAdditionalDrugSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalDrugSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalDrugSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAdditionalDrugSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalDrugSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalDrugSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAdditionalDrugSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAdditionalDrugSequence::Item::setMappingResource(const OFString & } +OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTAdditionalDrugSequence::isValid() const } -unsigned long DRTAdditionalDrugSequence::getNumberOfItems() const +size_t DRTAdditionalDrugSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTAdditionalDrugSequence::gotoNextItem() } -OFCondition DRTAdditionalDrugSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTAdditionalDrugSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTAdditionalDrugSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTAdditionalDrugSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTAdditionalDrugSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTAdditionalDrugSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTAdditionalDrugSequence::gotoItem(const unsigned long num) +OFCondition DRTAdditionalDrugSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::getCurrentItem } -OFCondition DRTAdditionalDrugSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTAdditionalDrugSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTAdditionalDrugSequence::getItem(const unsigned long num, Item *&i } -DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::getItem(const unsigned long num) +DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::getItem(const unsign } -const DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::getItem(const unsigned long num) const +const DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::getItem(const } -DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::operator[](const unsigned long num) +DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::operator[](const size_t num) { return getItem(num); } -const DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::operator[](const unsigned long num) const +const DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTAdditionalDrugSequence::addItem(Item *&item) } -OFCondition DRTAdditionalDrugSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTAdditionalDrugSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTAdditionalDrugSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTAdditionalDrugSequence::removeItem(const unsigned long pos) +OFCondition DRTAdditionalDrugSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtafs.cc b/dcmrt/libsrc/drtafs.cc index 86fa43f9..62f097ad 100644 --- a/dcmrt/libsrc/drtafs.cc +++ b/dcmrt/libsrc/drtafs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAssigningFacilitySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -280,7 +280,7 @@ OFBool DRTAssigningFacilitySequence::isValid() const } -unsigned long DRTAssigningFacilitySequence::getNumberOfItems() const +size_t DRTAssigningFacilitySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -310,12 +310,12 @@ OFCondition DRTAssigningFacilitySequence::gotoNextItem() } -OFCondition DRTAssigningFacilitySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTAssigningFacilitySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,12 +330,12 @@ OFCondition DRTAssigningFacilitySequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTAssigningFacilitySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTAssigningFacilitySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -350,7 +350,7 @@ OFCondition DRTAssigningFacilitySequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTAssigningFacilitySequence::gotoItem(const unsigned long num) +OFCondition DRTAssigningFacilitySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -386,7 +386,7 @@ const DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::getCurre } -OFCondition DRTAssigningFacilitySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTAssigningFacilitySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -396,7 +396,7 @@ OFCondition DRTAssigningFacilitySequence::getItem(const unsigned long num, Item } -DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::getItem(const unsigned long num) +DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -406,7 +406,7 @@ DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::getItem(const } -const DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::getItem(const unsigned long num) const +const DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -416,13 +416,13 @@ const DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::getItem( } -DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::operator[](const unsigned long num) +DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::operator[](const size_t num) { return getItem(num); } -const DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::operator[](const unsigned long num) const +const DRTAssigningFacilitySequence::Item &DRTAssigningFacilitySequence::operator[](const size_t num) const { return getItem(num); } @@ -445,7 +445,7 @@ OFCondition DRTAssigningFacilitySequence::addItem(Item *&item) } -OFCondition DRTAssigningFacilitySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTAssigningFacilitySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -468,7 +468,7 @@ OFCondition DRTAssigningFacilitySequence::insertItem(const unsigned long pos, It } -OFCondition DRTAssigningFacilitySequence::removeItem(const unsigned long pos) +OFCondition DRTAssigningFacilitySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtags.cc b/dcmrt/libsrc/drtags.cc index d84ca151..433089e3 100644 --- a/dcmrt/libsrc/drtags.cc +++ b/dcmrt/libsrc/drtags.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorGeometrySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -297,7 +297,7 @@ OFBool DRTApplicatorGeometrySequence::isValid() const } -unsigned long DRTApplicatorGeometrySequence::getNumberOfItems() const +size_t DRTApplicatorGeometrySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -327,12 +327,12 @@ OFCondition DRTApplicatorGeometrySequence::gotoNextItem() } -OFCondition DRTApplicatorGeometrySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTApplicatorGeometrySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -347,12 +347,12 @@ OFCondition DRTApplicatorGeometrySequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTApplicatorGeometrySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTApplicatorGeometrySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -367,7 +367,7 @@ OFCondition DRTApplicatorGeometrySequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTApplicatorGeometrySequence::gotoItem(const unsigned long num) +OFCondition DRTApplicatorGeometrySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -403,7 +403,7 @@ const DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::getCur } -OFCondition DRTApplicatorGeometrySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTApplicatorGeometrySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -413,7 +413,7 @@ OFCondition DRTApplicatorGeometrySequence::getItem(const unsigned long num, Item } -DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::getItem(const unsigned long num) +DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -423,7 +423,7 @@ DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::getItem(cons } -const DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::getItem(const unsigned long num) const +const DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -433,13 +433,13 @@ const DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::getIte } -DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::operator[](const unsigned long num) +DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::operator[](const size_t num) { return getItem(num); } -const DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::operator[](const unsigned long num) const +const DRTApplicatorGeometrySequence::Item &DRTApplicatorGeometrySequence::operator[](const size_t num) const { return getItem(num); } @@ -462,7 +462,7 @@ OFCondition DRTApplicatorGeometrySequence::addItem(Item *&item) } -OFCondition DRTApplicatorGeometrySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTApplicatorGeometrySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -485,7 +485,7 @@ OFCondition DRTApplicatorGeometrySequence::insertItem(const unsigned long pos, I } -OFCondition DRTApplicatorGeometrySequence::removeItem(const unsigned long pos) +OFCondition DRTApplicatorGeometrySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtajcs.cc b/dcmrt/libsrc/drtajcs.cc index 17a0ff60..2081efb6 100644 --- a/dcmrt/libsrc/drtajcs.cc +++ b/dcmrt/libsrc/drtajcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAssigningJurisdictionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAssigningJurisdictionCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAssigningJurisdictionCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningJurisdictionCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningJurisdictionCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningJurisdictionCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningJurisdictionCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResource(OFStr } +OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResource(const } +OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTAssigningJurisdictionCodeSequence::isValid() const } -unsigned long DRTAssigningJurisdictionCodeSequence::getNumberOfItems() const +size_t DRTAssigningJurisdictionCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTAssigningJurisdictionCodeSequence::gotoNextItem() } -OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const unsigned long n } -OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const unsigned long n } -OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTAssigningJurisdictionCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSe } -OFCondition DRTAssigningJurisdictionCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTAssigningJurisdictionCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::getItem(const unsigned long nu } -DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::getItem(const unsigned long num) +DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence } -const DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::getItem(const unsigned long num) const +const DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSe } -DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::operator[](const unsigned long num) +DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::operator[](const unsigned long num) const +const DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::addItem(Item *&item) } -OFCondition DRTAssigningJurisdictionCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTAssigningJurisdictionCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::insertItem(const unsigned long } -OFCondition DRTAssigningJurisdictionCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTAssigningJurisdictionCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtas1.cc b/dcmrt/libsrc/drtas1.cc index 4c06a738..2aa8fec2 100644 --- a/dcmrt/libsrc/drtas1.cc +++ b/dcmrt/libsrc/drtas1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -341,7 +341,7 @@ OFBool DRTApplicatorSequenceInRTBeamsModule::isValid() const } -unsigned long DRTApplicatorSequenceInRTBeamsModule::getNumberOfItems() const +size_t DRTApplicatorSequenceInRTBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -371,12 +371,12 @@ OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoNextItem() } -OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -391,12 +391,12 @@ OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const unsigned long n } -OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -411,7 +411,7 @@ OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const unsigned long n } -OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTApplicatorSequenceInRTBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -447,7 +447,7 @@ const DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeams } -OFCondition DRTApplicatorSequenceInRTBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTApplicatorSequenceInRTBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -457,7 +457,7 @@ OFCondition DRTApplicatorSequenceInRTBeamsModule::getItem(const unsigned long nu } -DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::getItem(const unsigned long num) +DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -467,7 +467,7 @@ DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule } -const DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::getItem(const unsigned long num) const +const DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -477,13 +477,13 @@ const DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeams } -DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::operator[](const unsigned long num) +DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::operator[](const unsigned long num) const +const DRTApplicatorSequenceInRTBeamsModule::Item &DRTApplicatorSequenceInRTBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -506,7 +506,7 @@ OFCondition DRTApplicatorSequenceInRTBeamsModule::addItem(Item *&item) } -OFCondition DRTApplicatorSequenceInRTBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTApplicatorSequenceInRTBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -529,7 +529,7 @@ OFCondition DRTApplicatorSequenceInRTBeamsModule::insertItem(const unsigned long } -OFCondition DRTApplicatorSequenceInRTBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTApplicatorSequenceInRTBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtas5.cc b/dcmrt/libsrc/drtas5.cc index 9f4901af..97359686 100644 --- a/dcmrt/libsrc/drtas5.cc +++ b/dcmrt/libsrc/drtas5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -341,7 +341,7 @@ OFBool DRTApplicatorSequenceInRTImageModule::isValid() const } -unsigned long DRTApplicatorSequenceInRTImageModule::getNumberOfItems() const +size_t DRTApplicatorSequenceInRTImageModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -371,12 +371,12 @@ OFCondition DRTApplicatorSequenceInRTImageModule::gotoNextItem() } -OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -391,12 +391,12 @@ OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const unsigned long n } -OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -411,7 +411,7 @@ OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const unsigned long n } -OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const unsigned long num) +OFCondition DRTApplicatorSequenceInRTImageModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -447,7 +447,7 @@ const DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImage } -OFCondition DRTApplicatorSequenceInRTImageModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTApplicatorSequenceInRTImageModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -457,7 +457,7 @@ OFCondition DRTApplicatorSequenceInRTImageModule::getItem(const unsigned long nu } -DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::getItem(const unsigned long num) +DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -467,7 +467,7 @@ DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule } -const DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::getItem(const unsigned long num) const +const DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -477,13 +477,13 @@ const DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImage } -DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::operator[](const unsigned long num) +DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::operator[](const size_t num) { return getItem(num); } -const DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::operator[](const unsigned long num) const +const DRTApplicatorSequenceInRTImageModule::Item &DRTApplicatorSequenceInRTImageModule::operator[](const size_t num) const { return getItem(num); } @@ -506,7 +506,7 @@ OFCondition DRTApplicatorSequenceInRTImageModule::addItem(Item *&item) } -OFCondition DRTApplicatorSequenceInRTImageModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTApplicatorSequenceInRTImageModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -529,7 +529,7 @@ OFCondition DRTApplicatorSequenceInRTImageModule::insertItem(const unsigned long } -OFCondition DRTApplicatorSequenceInRTImageModule::removeItem(const unsigned long pos) +OFCondition DRTApplicatorSequenceInRTImageModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtas6.cc b/dcmrt/libsrc/drtas6.cc index 304bd0a2..aa84ae01 100644 --- a/dcmrt/libsrc/drtas6.cc +++ b/dcmrt/libsrc/drtas6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -309,7 +309,7 @@ OFBool DRTApplicatorSequenceInRTIonBeamsModule::isValid() const } -unsigned long DRTApplicatorSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTApplicatorSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -339,12 +339,12 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoNextItem() } -OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,12 +359,12 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned lon } -OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -379,7 +379,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned lon } -OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -415,7 +415,7 @@ const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIo } -OFCondition DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTApplicatorSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -425,7 +425,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long } -DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -435,7 +435,7 @@ DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeams } -const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -445,13 +445,13 @@ const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIo } -DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -474,7 +474,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::addItem(Item *&item) } -OFCondition DRTApplicatorSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTApplicatorSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -497,7 +497,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::insertItem(const unsigned l } -OFCondition DRTApplicatorSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTApplicatorSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtas7.cc b/dcmrt/libsrc/drtas7.cc index 1abdea15..e2ede8f6 100644 --- a/dcmrt/libsrc/drtas7.cc +++ b/dcmrt/libsrc/drtas7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -309,7 +309,7 @@ OFBool DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::isValid() const } -unsigned long DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const +size_t DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -339,12 +339,12 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoNextItem() } -OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,12 +359,12 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const } -OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -379,7 +379,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const } -OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num) +OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -415,7 +415,7 @@ const DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorS } -OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -425,7 +425,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getItem(const } -DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) +DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -435,7 +435,7 @@ DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenc } -const DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) const +const DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -445,13 +445,13 @@ const DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorS } -DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) +DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) const +const DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::Item &DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -474,7 +474,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::addItem(Item * } -OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -497,7 +497,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::insertItem(con } -OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::removeItem(const unsigned long pos) +OFCondition DRTApplicatorSequenceInRTIonBeamsSessionRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtass.cc b/dcmrt/libsrc/drtass.cc index 5578b577..493ed382 100644 --- a/dcmrt/libsrc/drtass.cc +++ b/dcmrt/libsrc/drtass.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicationSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -473,7 +473,7 @@ OFBool DRTApplicationSetupSequence::isValid() const } -unsigned long DRTApplicationSetupSequence::getNumberOfItems() const +size_t DRTApplicationSetupSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -503,12 +503,12 @@ OFCondition DRTApplicationSetupSequence::gotoNextItem() } -OFCondition DRTApplicationSetupSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTApplicationSetupSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -523,12 +523,12 @@ OFCondition DRTApplicationSetupSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTApplicationSetupSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTApplicationSetupSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -543,7 +543,7 @@ OFCondition DRTApplicationSetupSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTApplicationSetupSequence::gotoItem(const unsigned long num) +OFCondition DRTApplicationSetupSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -579,7 +579,7 @@ const DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::getCurrent } -OFCondition DRTApplicationSetupSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTApplicationSetupSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -589,7 +589,7 @@ OFCondition DRTApplicationSetupSequence::getItem(const unsigned long num, Item * } -DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::getItem(const unsigned long num) +DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -599,7 +599,7 @@ DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::getItem(const un } -const DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::getItem(const unsigned long num) const +const DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -609,13 +609,13 @@ const DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::getItem(co } -DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::operator[](const unsigned long num) +DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::operator[](const size_t num) { return getItem(num); } -const DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::operator[](const unsigned long num) const +const DRTApplicationSetupSequence::Item &DRTApplicationSetupSequence::operator[](const size_t num) const { return getItem(num); } @@ -638,7 +638,7 @@ OFCondition DRTApplicationSetupSequence::addItem(Item *&item) } -OFCondition DRTApplicationSetupSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTApplicationSetupSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -661,7 +661,7 @@ OFCondition DRTApplicationSetupSequence::insertItem(const unsigned long pos, Ite } -OFCondition DRTApplicationSetupSequence::removeItem(const unsigned long pos) +OFCondition DRTApplicationSetupSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbads.cc b/dcmrt/libsrc/drtbads.cc index 55e4dee6..2e8f8938 100644 --- a/dcmrt/libsrc/drtbads.cc +++ b/dcmrt/libsrc/drtbads.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBrachyAccessoryDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -461,7 +461,7 @@ OFBool DRTBrachyAccessoryDeviceSequence::isValid() const } -unsigned long DRTBrachyAccessoryDeviceSequence::getNumberOfItems() const +size_t DRTBrachyAccessoryDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -491,12 +491,12 @@ OFCondition DRTBrachyAccessoryDeviceSequence::gotoNextItem() } -OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -511,12 +511,12 @@ OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const unsigned long num, } -OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -531,7 +531,7 @@ OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const unsigned long num, } -OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTBrachyAccessoryDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -567,7 +567,7 @@ const DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence:: } -OFCondition DRTBrachyAccessoryDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBrachyAccessoryDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -577,7 +577,7 @@ OFCondition DRTBrachyAccessoryDeviceSequence::getItem(const unsigned long num, I } -DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::getItem(const unsigned long num) +DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -587,7 +587,7 @@ DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::getIte } -const DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::getItem(const unsigned long num) const +const DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -597,13 +597,13 @@ const DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence:: } -DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::operator[](const unsigned long num) +DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::operator[](const unsigned long num) const +const DRTBrachyAccessoryDeviceSequence::Item &DRTBrachyAccessoryDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -626,7 +626,7 @@ OFCondition DRTBrachyAccessoryDeviceSequence::addItem(Item *&item) } -OFCondition DRTBrachyAccessoryDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBrachyAccessoryDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -649,7 +649,7 @@ OFCondition DRTBrachyAccessoryDeviceSequence::insertItem(const unsigned long pos } -OFCondition DRTBrachyAccessoryDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTBrachyAccessoryDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbas.cc b/dcmrt/libsrc/drtbas.cc index 55a74972..9a4b7f96 100644 --- a/dcmrt/libsrc/drtbas.cc +++ b/dcmrt/libsrc/drtbas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContrastBolusAgentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTContrastBolusAgentSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTContrastBolusAgentSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::Item::operat EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTContrastBolusAgentSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTContrastBolusAgentSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAgentSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAgentSequence"); @@ -186,6 +192,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAgentSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAgentSequence"); @@ -303,6 +310,15 @@ OFCondition DRTContrastBolusAgentSequence::Item::getMappingResource(OFString &va } +OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTContrastBolusAgentSequence::Item::setMappingResource(const OFStri } +OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTContrastBolusAgentSequence::isValid() const } -unsigned long DRTContrastBolusAgentSequence::getNumberOfItems() const +size_t DRTContrastBolusAgentSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTContrastBolusAgentSequence::gotoNextItem() } -OFCondition DRTContrastBolusAgentSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTContrastBolusAgentSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTContrastBolusAgentSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTContrastBolusAgentSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTContrastBolusAgentSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTContrastBolusAgentSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTContrastBolusAgentSequence::gotoItem(const unsigned long num) +OFCondition DRTContrastBolusAgentSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::getCur } -OFCondition DRTContrastBolusAgentSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTContrastBolusAgentSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTContrastBolusAgentSequence::getItem(const unsigned long num, Item } -DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::getItem(const unsigned long num) +DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::getItem(cons } -const DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::getItem(const unsigned long num) const +const DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::getIte } -DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::operator[](const unsigned long num) +DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::operator[](const size_t num) { return getItem(num); } -const DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::operator[](const unsigned long num) const +const DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTContrastBolusAgentSequence::addItem(Item *&item) } -OFCondition DRTContrastBolusAgentSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTContrastBolusAgentSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTContrastBolusAgentSequence::insertItem(const unsigned long pos, I } -OFCondition DRTContrastBolusAgentSequence::removeItem(const unsigned long pos) +OFCondition DRTContrastBolusAgentSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbcps.cc b/dcmrt/libsrc/drtbcps.cc index 1eac2efb..cfb85873 100644 --- a/dcmrt/libsrc/drtbcps.cc +++ b/dcmrt/libsrc/drtbcps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBrachyControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -386,7 +386,7 @@ OFBool DRTBrachyControlPointSequence::isValid() const } -unsigned long DRTBrachyControlPointSequence::getNumberOfItems() const +size_t DRTBrachyControlPointSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -416,12 +416,12 @@ OFCondition DRTBrachyControlPointSequence::gotoNextItem() } -OFCondition DRTBrachyControlPointSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBrachyControlPointSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -436,12 +436,12 @@ OFCondition DRTBrachyControlPointSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTBrachyControlPointSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBrachyControlPointSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -456,7 +456,7 @@ OFCondition DRTBrachyControlPointSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTBrachyControlPointSequence::gotoItem(const unsigned long num) +OFCondition DRTBrachyControlPointSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -492,7 +492,7 @@ const DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::getCur } -OFCondition DRTBrachyControlPointSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBrachyControlPointSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -502,7 +502,7 @@ OFCondition DRTBrachyControlPointSequence::getItem(const unsigned long num, Item } -DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::getItem(const unsigned long num) +DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -512,7 +512,7 @@ DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::getItem(cons } -const DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::getItem(const unsigned long num) const +const DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -522,13 +522,13 @@ const DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::getIte } -DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::operator[](const unsigned long num) +DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::operator[](const size_t num) { return getItem(num); } -const DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::operator[](const unsigned long num) const +const DRTBrachyControlPointSequence::Item &DRTBrachyControlPointSequence::operator[](const size_t num) const { return getItem(num); } @@ -551,7 +551,7 @@ OFCondition DRTBrachyControlPointSequence::addItem(Item *&item) } -OFCondition DRTBrachyControlPointSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBrachyControlPointSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -574,7 +574,7 @@ OFCondition DRTBrachyControlPointSequence::insertItem(const unsigned long pos, I } -OFCondition DRTBrachyControlPointSequence::removeItem(const unsigned long pos) +OFCondition DRTBrachyControlPointSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbl2.cc b/dcmrt/libsrc/drtbl2.cc index f86a6700..2a0827a0 100644 --- a/dcmrt/libsrc/drtbl2.cc +++ b/dcmrt/libsrc/drtbl2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBlockSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -33,7 +33,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const OFBool emptyDefaultItem) BlockTrayID(DCM_BlockTrayID), BlockType(DCM_BlockType), MaterialID(DCM_MaterialID), - SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance) + SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance), + TrayAccessoryCode(DCM_TrayAccessoryCode) { } @@ -52,7 +53,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const Item ©) BlockTrayID(copy.BlockTrayID), BlockType(copy.BlockType), MaterialID(copy.MaterialID), - SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance) + SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance), + TrayAccessoryCode(copy.TrayAccessoryCode) { } @@ -80,6 +82,7 @@ DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::Item::op BlockType = copy.BlockType; MaterialID = copy.MaterialID; SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance; + TrayAccessoryCode = copy.TrayAccessoryCode; } return *this; } @@ -91,6 +94,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear() { /* clear all DICOM attributes */ BlockTrayID.clear(); + TrayAccessoryCode.clear(); AccessoryCode.clear(); SourceToBlockTrayDistance.clear(); BlockType.clear(); @@ -110,6 +114,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear() OFBool DRTBlockSequenceInRTBeamsModule::Item::isEmpty() { return BlockTrayID.isEmpty() && + TrayAccessoryCode.isEmpty() && AccessoryCode.isEmpty() && SourceToBlockTrayDistance.isEmpty() && BlockType.isEmpty() && @@ -139,6 +144,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::read(DcmItem &item) /* re-initialize object */ clear(); getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence"); + getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence"); getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence"); @@ -164,6 +170,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::write(DcmItem &item) { result = EC_Normal; addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence"); + addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence"); addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence"); @@ -361,6 +368,15 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::getSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTBeamsModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(TrayAccessoryCode, value, pos); +} + + OFCondition DRTBlockSequenceInRTBeamsModule::Item::setAccessoryCode(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -530,6 +546,19 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::setSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTBeamsModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = TrayAccessoryCode.putOFStringArray(value); + } + return result; +} + + // --- sequence class --- DRTBlockSequenceInRTBeamsModule::DRTBlockSequenceInRTBeamsModule(const OFBool emptyDefaultSequence) @@ -633,7 +662,7 @@ OFBool DRTBlockSequenceInRTBeamsModule::isValid() const } -unsigned long DRTBlockSequenceInRTBeamsModule::getNumberOfItems() const +size_t DRTBlockSequenceInRTBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -663,12 +692,12 @@ OFCondition DRTBlockSequenceInRTBeamsModule::gotoNextItem() } -OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -683,12 +712,12 @@ OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const unsigned long num, O } -OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -703,7 +732,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const unsigned long num, O } -OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTBlockSequenceInRTBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -739,7 +768,7 @@ const DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::ge } -OFCondition DRTBlockSequenceInRTBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTBlockSequenceInRTBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -749,7 +778,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::getItem(const unsigned long num, It } -DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::getItem(const unsigned long num) +DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -759,7 +788,7 @@ DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::getItem( } -const DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::getItem(const unsigned long num) const +const DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -769,13 +798,13 @@ const DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::ge } -DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::operator[](const unsigned long num) +DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::operator[](const unsigned long num) const +const DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -798,7 +827,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::addItem(Item *&item) } -OFCondition DRTBlockSequenceInRTBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBlockSequenceInRTBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -821,7 +850,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::insertItem(const unsigned long pos, } -OFCondition DRTBlockSequenceInRTBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTBlockSequenceInRTBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbl5.cc b/dcmrt/libsrc/drtbl5.cc index 806f2901..49ea79e9 100644 --- a/dcmrt/libsrc/drtbl5.cc +++ b/dcmrt/libsrc/drtbl5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBlockSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -32,7 +32,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const OFBool emptyDefaultItem) BlockTrayID(DCM_BlockTrayID), BlockType(DCM_BlockType), MaterialID(DCM_MaterialID), - SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance) + SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance), + TrayAccessoryCode(DCM_TrayAccessoryCode) { } @@ -50,7 +51,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const Item ©) BlockTrayID(copy.BlockTrayID), BlockType(copy.BlockType), MaterialID(copy.MaterialID), - SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance) + SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance), + TrayAccessoryCode(copy.TrayAccessoryCode) { } @@ -77,6 +79,7 @@ DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::Item::op BlockType = copy.BlockType; MaterialID = copy.MaterialID; SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance; + TrayAccessoryCode = copy.TrayAccessoryCode; } return *this; } @@ -88,6 +91,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear() { /* clear all DICOM attributes */ BlockTrayID.clear(); + TrayAccessoryCode.clear(); AccessoryCode.clear(); SourceToBlockTrayDistance.clear(); BlockType.clear(); @@ -106,6 +110,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear() OFBool DRTBlockSequenceInRTImageModule::Item::isEmpty() { return BlockTrayID.isEmpty() && + TrayAccessoryCode.isEmpty() && AccessoryCode.isEmpty() && SourceToBlockTrayDistance.isEmpty() && BlockType.isEmpty() && @@ -134,6 +139,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::read(DcmItem &item) /* re-initialize object */ clear(); getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence"); + getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence"); getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence"); @@ -158,6 +164,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::write(DcmItem &item) { result = EC_Normal; addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence"); + addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence"); addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence"); @@ -336,6 +343,15 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::getSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTImageModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(TrayAccessoryCode, value, pos); +} + + OFCondition DRTBlockSequenceInRTImageModule::Item::setAccessoryCode(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -492,6 +508,19 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::setSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTImageModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = TrayAccessoryCode.putOFStringArray(value); + } + return result; +} + + // --- sequence class --- DRTBlockSequenceInRTImageModule::DRTBlockSequenceInRTImageModule(const OFBool emptyDefaultSequence) @@ -595,7 +624,7 @@ OFBool DRTBlockSequenceInRTImageModule::isValid() const } -unsigned long DRTBlockSequenceInRTImageModule::getNumberOfItems() const +size_t DRTBlockSequenceInRTImageModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -625,12 +654,12 @@ OFCondition DRTBlockSequenceInRTImageModule::gotoNextItem() } -OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -645,12 +674,12 @@ OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const unsigned long num, O } -OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -665,7 +694,7 @@ OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const unsigned long num, O } -OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const unsigned long num) +OFCondition DRTBlockSequenceInRTImageModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -701,7 +730,7 @@ const DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::ge } -OFCondition DRTBlockSequenceInRTImageModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTBlockSequenceInRTImageModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -711,7 +740,7 @@ OFCondition DRTBlockSequenceInRTImageModule::getItem(const unsigned long num, It } -DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::getItem(const unsigned long num) +DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -721,7 +750,7 @@ DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::getItem( } -const DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::getItem(const unsigned long num) const +const DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -731,13 +760,13 @@ const DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::ge } -DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::operator[](const unsigned long num) +DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::operator[](const size_t num) { return getItem(num); } -const DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::operator[](const unsigned long num) const +const DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::operator[](const size_t num) const { return getItem(num); } @@ -760,7 +789,7 @@ OFCondition DRTBlockSequenceInRTImageModule::addItem(Item *&item) } -OFCondition DRTBlockSequenceInRTImageModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBlockSequenceInRTImageModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -783,7 +812,7 @@ OFCondition DRTBlockSequenceInRTImageModule::insertItem(const unsigned long pos, } -OFCondition DRTBlockSequenceInRTImageModule::removeItem(const unsigned long pos) +OFCondition DRTBlockSequenceInRTImageModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbldls.cc b/dcmrt/libsrc/drtbldls.cc index 560165cd..de92e874 100644 --- a/dcmrt/libsrc/drtbldls.cc +++ b/dcmrt/libsrc/drtbldls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceLeafPairsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTBeamLimitingDeviceLeafPairsSequence::isValid() const } -unsigned long DRTBeamLimitingDeviceLeafPairsSequence::getNumberOfItems() const +size_t DRTBeamLimitingDeviceLeafPairsSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoNextItem() } -OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const unsigned long } -OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const unsigned long } -OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const unsigned long num) +OFCondition DRTBeamLimitingDeviceLeafPairsSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPai } -OFCondition DRTBeamLimitingDeviceLeafPairsSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamLimitingDeviceLeafPairsSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTBeamLimitingDeviceLeafPairsSequence::getItem(const unsigned long } -DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::getItem(const unsigned long num) +DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequ } -const DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::getItem(const unsigned long num) const +const DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPai } -DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::operator[](const unsigned long num) +DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::operator[](const size_t num) { return getItem(num); } -const DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::operator[](const unsigned long num) const +const DRTBeamLimitingDeviceLeafPairsSequence::Item &DRTBeamLimitingDeviceLeafPairsSequence::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTBeamLimitingDeviceLeafPairsSequence::addItem(Item *&item) } -OFCondition DRTBeamLimitingDeviceLeafPairsSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamLimitingDeviceLeafPairsSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTBeamLimitingDeviceLeafPairsSequence::insertItem(const unsigned lo } -OFCondition DRTBeamLimitingDeviceLeafPairsSequence::removeItem(const unsigned long pos) +OFCondition DRTBeamLimitingDeviceLeafPairsSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbldps.cc b/dcmrt/libsrc/drtbldps.cc index 07a8ef8e..033fb9e6 100644 --- a/dcmrt/libsrc/drtbldps.cc +++ b/dcmrt/libsrc/drtbldps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDevicePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -269,7 +269,7 @@ OFBool DRTBeamLimitingDevicePositionSequence::isValid() const } -unsigned long DRTBeamLimitingDevicePositionSequence::getNumberOfItems() const +size_t DRTBeamLimitingDevicePositionSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -299,12 +299,12 @@ OFCondition DRTBeamLimitingDevicePositionSequence::gotoNextItem() } -OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -319,12 +319,12 @@ OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const unsigned long } -OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,7 +339,7 @@ OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const unsigned long } -OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const unsigned long num) +OFCondition DRTBeamLimitingDevicePositionSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -375,7 +375,7 @@ const DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePosition } -OFCondition DRTBeamLimitingDevicePositionSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamLimitingDevicePositionSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -385,7 +385,7 @@ OFCondition DRTBeamLimitingDevicePositionSequence::getItem(const unsigned long n } -DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::getItem(const unsigned long num) +DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -395,7 +395,7 @@ DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequen } -const DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::getItem(const unsigned long num) const +const DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -405,13 +405,13 @@ const DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePosition } -DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::operator[](const unsigned long num) +DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::operator[](const size_t num) { return getItem(num); } -const DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::operator[](const unsigned long num) const +const DRTBeamLimitingDevicePositionSequence::Item &DRTBeamLimitingDevicePositionSequence::operator[](const size_t num) const { return getItem(num); } @@ -434,7 +434,7 @@ OFCondition DRTBeamLimitingDevicePositionSequence::addItem(Item *&item) } -OFCondition DRTBeamLimitingDevicePositionSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamLimitingDevicePositionSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -457,7 +457,7 @@ OFCondition DRTBeamLimitingDevicePositionSequence::insertItem(const unsigned lon } -OFCondition DRTBeamLimitingDevicePositionSequence::removeItem(const unsigned long pos) +OFCondition DRTBeamLimitingDevicePositionSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtblds1.cc b/dcmrt/libsrc/drtblds1.cc index 1cef0f20..2321be32 100644 --- a/dcmrt/libsrc/drtblds1.cc +++ b/dcmrt/libsrc/drtblds1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -345,7 +345,7 @@ OFBool DRTBeamLimitingDeviceSequenceInRTBeamsModule::isValid() const } -unsigned long DRTBeamLimitingDeviceSequenceInRTBeamsModule::getNumberOfItems() const +size_t DRTBeamLimitingDeviceSequenceInRTBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -375,12 +375,12 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoNextItem() } -OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -395,12 +395,12 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const unsigne } -OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -415,7 +415,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const unsigne } -OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -451,7 +451,7 @@ const DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceS } -OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -461,7 +461,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::getItem(const unsigned } -DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::getItem(const unsigned long num) +DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -471,7 +471,7 @@ DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenc } -const DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::getItem(const unsigned long num) const +const DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -481,13 +481,13 @@ const DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceS } -DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::operator[](const unsigned long num) +DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::operator[](const unsigned long num) const +const DRTBeamLimitingDeviceSequenceInRTBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -510,7 +510,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::addItem(Item *&item) } -OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -533,7 +533,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::insertItem(const unsig } -OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTBeamLimitingDeviceSequenceInRTBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtblds5.cc b/dcmrt/libsrc/drtblds5.cc index 714aa7b5..2c00892a 100644 --- a/dcmrt/libsrc/drtblds5.cc +++ b/dcmrt/libsrc/drtblds5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -392,7 +392,7 @@ OFBool DRTBeamLimitingDeviceSequenceInRTImageModule::isValid() const } -unsigned long DRTBeamLimitingDeviceSequenceInRTImageModule::getNumberOfItems() const +size_t DRTBeamLimitingDeviceSequenceInRTImageModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -422,12 +422,12 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoNextItem() } -OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -442,12 +442,12 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const unsigne } -OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -462,7 +462,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const unsigne } -OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const unsigned long num) +OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -498,7 +498,7 @@ const DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceS } -OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -508,7 +508,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::getItem(const unsigned } -DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::getItem(const unsigned long num) +DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -518,7 +518,7 @@ DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenc } -const DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::getItem(const unsigned long num) const +const DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -528,13 +528,13 @@ const DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceS } -DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::operator[](const unsigned long num) +DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::operator[](const size_t num) { return getItem(num); } -const DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::operator[](const unsigned long num) const +const DRTBeamLimitingDeviceSequenceInRTImageModule::Item &DRTBeamLimitingDeviceSequenceInRTImageModule::operator[](const size_t num) const { return getItem(num); } @@ -557,7 +557,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::addItem(Item *&item) } -OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -580,7 +580,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::insertItem(const unsig } -OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::removeItem(const unsigned long pos) +OFCondition DRTBeamLimitingDeviceSequenceInRTImageModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtblds6.cc b/dcmrt/libsrc/drtblds6.cc index b5719c40..c85c6301 100644 --- a/dcmrt/libsrc/drtblds6.cc +++ b/dcmrt/libsrc/drtblds6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -392,7 +392,7 @@ OFBool DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::isValid() const } -unsigned long DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -422,12 +422,12 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoNextItem() } -OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -442,12 +442,12 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const unsi } -OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -462,7 +462,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const unsi } -OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -498,7 +498,7 @@ const DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDevi } -OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -508,7 +508,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getItem(const unsig } -DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -518,7 +518,7 @@ DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequ } -const DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -528,13 +528,13 @@ const DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDevi } -DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::Item &DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -557,7 +557,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::addItem(Item *&item } -OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -580,7 +580,7 @@ OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::insertItem(const un } -OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTBeamLimitingDeviceSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbldts.cc b/dcmrt/libsrc/drtbldts.cc index 0a5a5016..d51fafed 100644 --- a/dcmrt/libsrc/drtbldts.cc +++ b/dcmrt/libsrc/drtbldts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceToleranceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTBeamLimitingDeviceToleranceSequence::isValid() const } -unsigned long DRTBeamLimitingDeviceToleranceSequence::getNumberOfItems() const +size_t DRTBeamLimitingDeviceToleranceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoNextItem() } -OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const unsigned long } -OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const unsigned long } -OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const unsigned long num) +OFCondition DRTBeamLimitingDeviceToleranceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleran } -OFCondition DRTBeamLimitingDeviceToleranceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamLimitingDeviceToleranceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTBeamLimitingDeviceToleranceSequence::getItem(const unsigned long } -DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::getItem(const unsigned long num) +DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequ } -const DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::getItem(const unsigned long num) const +const DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleran } -DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::operator[](const unsigned long num) +DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::operator[](const size_t num) { return getItem(num); } -const DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::operator[](const unsigned long num) const +const DRTBeamLimitingDeviceToleranceSequence::Item &DRTBeamLimitingDeviceToleranceSequence::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTBeamLimitingDeviceToleranceSequence::addItem(Item *&item) } -OFCondition DRTBeamLimitingDeviceToleranceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamLimitingDeviceToleranceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTBeamLimitingDeviceToleranceSequence::insertItem(const unsigned lo } -OFCondition DRTBeamLimitingDeviceToleranceSequence::removeItem(const unsigned long pos) +OFCondition DRTBeamLimitingDeviceToleranceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbrcss.cc b/dcmrt/libsrc/drtbrcss.cc index 2f23b0d1..62260ead 100644 --- a/dcmrt/libsrc/drtbrcss.cc +++ b/dcmrt/libsrc/drtbrcss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBreedRegistryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::Item::operator EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTBreedRegistryCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTBreedRegistryCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "BreedRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "BreedRegistryCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "BreedRegistryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "BreedRegistryCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResource(OFString &val } +OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResource(const OFStrin } +OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTBreedRegistryCodeSequence::isValid() const } -unsigned long DRTBreedRegistryCodeSequence::getNumberOfItems() const +size_t DRTBreedRegistryCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTBreedRegistryCodeSequence::gotoNextItem() } -OFCondition DRTBreedRegistryCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBreedRegistryCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTBreedRegistryCodeSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTBreedRegistryCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBreedRegistryCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTBreedRegistryCodeSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTBreedRegistryCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTBreedRegistryCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::getCurre } -OFCondition DRTBreedRegistryCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBreedRegistryCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTBreedRegistryCodeSequence::getItem(const unsigned long num, Item } -DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::getItem(const unsigned long num) +DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::getItem(const } -const DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::getItem(const unsigned long num) const +const DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::getItem( } -DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::operator[](const unsigned long num) +DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::operator[](const unsigned long num) const +const DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTBreedRegistryCodeSequence::addItem(Item *&item) } -OFCondition DRTBreedRegistryCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBreedRegistryCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTBreedRegistryCodeSequence::insertItem(const unsigned long pos, It } -OFCondition DRTBreedRegistryCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTBreedRegistryCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbrdrs.cc b/dcmrt/libsrc/drtbrdrs.cc index 98b584bc..453dc1bf 100644 --- a/dcmrt/libsrc/drtbrdrs.cc +++ b/dcmrt/libsrc/drtbrdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBrachyReferencedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -269,7 +269,7 @@ OFBool DRTBrachyReferencedDoseReferenceSequence::isValid() const } -unsigned long DRTBrachyReferencedDoseReferenceSequence::getNumberOfItems() const +size_t DRTBrachyReferencedDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -299,12 +299,12 @@ OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoNextItem() } -OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -319,12 +319,12 @@ OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const unsigned lo } -OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,7 +339,7 @@ OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const unsigned lo } -OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTBrachyReferencedDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -375,7 +375,7 @@ const DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseRef } -OFCondition DRTBrachyReferencedDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBrachyReferencedDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -385,7 +385,7 @@ OFCondition DRTBrachyReferencedDoseReferenceSequence::getItem(const unsigned lon } -DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::getItem(const unsigned long num) +DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -395,7 +395,7 @@ DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReference } -const DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::getItem(const unsigned long num) const +const DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -405,13 +405,13 @@ const DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseRef } -DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::operator[](const unsigned long num) +DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::operator[](const unsigned long num) const +const DRTBrachyReferencedDoseReferenceSequence::Item &DRTBrachyReferencedDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -434,7 +434,7 @@ OFCondition DRTBrachyReferencedDoseReferenceSequence::addItem(Item *&item) } -OFCondition DRTBrachyReferencedDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBrachyReferencedDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -457,7 +457,7 @@ OFCondition DRTBrachyReferencedDoseReferenceSequence::insertItem(const unsigned } -OFCondition DRTBrachyReferencedDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTBrachyReferencedDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbrs.cc b/dcmrt/libsrc/drtbrs.cc index 67f54168..6f9ddd59 100644 --- a/dcmrt/libsrc/drtbrs.cc +++ b/dcmrt/libsrc/drtbrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBreedRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -229,7 +229,7 @@ OFBool DRTBreedRegistrationSequence::isValid() const } -unsigned long DRTBreedRegistrationSequence::getNumberOfItems() const +size_t DRTBreedRegistrationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -259,12 +259,12 @@ OFCondition DRTBreedRegistrationSequence::gotoNextItem() } -OFCondition DRTBreedRegistrationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBreedRegistrationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -279,12 +279,12 @@ OFCondition DRTBreedRegistrationSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTBreedRegistrationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBreedRegistrationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -299,7 +299,7 @@ OFCondition DRTBreedRegistrationSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTBreedRegistrationSequence::gotoItem(const unsigned long num) +OFCondition DRTBreedRegistrationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -335,7 +335,7 @@ const DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::getCurre } -OFCondition DRTBreedRegistrationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBreedRegistrationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -345,7 +345,7 @@ OFCondition DRTBreedRegistrationSequence::getItem(const unsigned long num, Item } -DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::getItem(const unsigned long num) +DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -355,7 +355,7 @@ DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::getItem(const } -const DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::getItem(const unsigned long num) const +const DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -365,13 +365,13 @@ const DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::getItem( } -DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::operator[](const unsigned long num) +DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::operator[](const size_t num) { return getItem(num); } -const DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::operator[](const unsigned long num) const +const DRTBreedRegistrationSequence::Item &DRTBreedRegistrationSequence::operator[](const size_t num) const { return getItem(num); } @@ -394,7 +394,7 @@ OFCondition DRTBreedRegistrationSequence::addItem(Item *&item) } -OFCondition DRTBreedRegistrationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBreedRegistrationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -417,7 +417,7 @@ OFCondition DRTBreedRegistrationSequence::insertItem(const unsigned long pos, It } -OFCondition DRTBreedRegistrationSequence::removeItem(const unsigned long pos) +OFCondition DRTBreedRegistrationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbs.cc b/dcmrt/libsrc/drtbs.cc index f9e42e8c..92c81dc0 100644 --- a/dcmrt/libsrc/drtbs.cc +++ b/dcmrt/libsrc/drtbs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -1139,7 +1139,7 @@ OFBool DRTBeamSequence::isValid() const } -unsigned long DRTBeamSequence::getNumberOfItems() const +size_t DRTBeamSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -1169,12 +1169,12 @@ OFCondition DRTBeamSequence::gotoNextItem() } -OFCondition DRTBeamSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1189,12 +1189,12 @@ OFCondition DRTBeamSequence::gotoItem(const unsigned long num, OFListIterator(It } -OFCondition DRTBeamSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1209,7 +1209,7 @@ OFCondition DRTBeamSequence::gotoItem(const unsigned long num, OFListConstIterat } -OFCondition DRTBeamSequence::gotoItem(const unsigned long num) +OFCondition DRTBeamSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1245,7 +1245,7 @@ const DRTBeamSequence::Item &DRTBeamSequence::getCurrentItem() const } -OFCondition DRTBeamSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1255,7 +1255,7 @@ OFCondition DRTBeamSequence::getItem(const unsigned long num, Item *&item) } -DRTBeamSequence::Item &DRTBeamSequence::getItem(const unsigned long num) +DRTBeamSequence::Item &DRTBeamSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1265,7 +1265,7 @@ DRTBeamSequence::Item &DRTBeamSequence::getItem(const unsigned long num) } -const DRTBeamSequence::Item &DRTBeamSequence::getItem(const unsigned long num) const +const DRTBeamSequence::Item &DRTBeamSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1275,13 +1275,13 @@ const DRTBeamSequence::Item &DRTBeamSequence::getItem(const unsigned long num) c } -DRTBeamSequence::Item &DRTBeamSequence::operator[](const unsigned long num) +DRTBeamSequence::Item &DRTBeamSequence::operator[](const size_t num) { return getItem(num); } -const DRTBeamSequence::Item &DRTBeamSequence::operator[](const unsigned long num) const +const DRTBeamSequence::Item &DRTBeamSequence::operator[](const size_t num) const { return getItem(num); } @@ -1304,7 +1304,7 @@ OFCondition DRTBeamSequence::addItem(Item *&item) } -OFCondition DRTBeamSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1327,7 +1327,7 @@ OFCondition DRTBeamSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTBeamSequence::removeItem(const unsigned long pos) +OFCondition DRTBeamSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbss.cc b/dcmrt/libsrc/drtbss.cc index d72e2d2d..2851f378 100644 --- a/dcmrt/libsrc/drtbss.cc +++ b/dcmrt/libsrc/drtbss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBlockSlabSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -285,7 +285,7 @@ OFBool DRTBlockSlabSequence::isValid() const } -unsigned long DRTBlockSlabSequence::getNumberOfItems() const +size_t DRTBlockSlabSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -315,12 +315,12 @@ OFCondition DRTBlockSlabSequence::gotoNextItem() } -OFCondition DRTBlockSlabSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBlockSlabSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -335,12 +335,12 @@ OFCondition DRTBlockSlabSequence::gotoItem(const unsigned long num, OFListIterat } -OFCondition DRTBlockSlabSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBlockSlabSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -355,7 +355,7 @@ OFCondition DRTBlockSlabSequence::gotoItem(const unsigned long num, OFListConstI } -OFCondition DRTBlockSlabSequence::gotoItem(const unsigned long num) +OFCondition DRTBlockSlabSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -391,7 +391,7 @@ const DRTBlockSlabSequence::Item &DRTBlockSlabSequence::getCurrentItem() const } -OFCondition DRTBlockSlabSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBlockSlabSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -401,7 +401,7 @@ OFCondition DRTBlockSlabSequence::getItem(const unsigned long num, Item *&item) } -DRTBlockSlabSequence::Item &DRTBlockSlabSequence::getItem(const unsigned long num) +DRTBlockSlabSequence::Item &DRTBlockSlabSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -411,7 +411,7 @@ DRTBlockSlabSequence::Item &DRTBlockSlabSequence::getItem(const unsigned long nu } -const DRTBlockSlabSequence::Item &DRTBlockSlabSequence::getItem(const unsigned long num) const +const DRTBlockSlabSequence::Item &DRTBlockSlabSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -421,13 +421,13 @@ const DRTBlockSlabSequence::Item &DRTBlockSlabSequence::getItem(const unsigned l } -DRTBlockSlabSequence::Item &DRTBlockSlabSequence::operator[](const unsigned long num) +DRTBlockSlabSequence::Item &DRTBlockSlabSequence::operator[](const size_t num) { return getItem(num); } -const DRTBlockSlabSequence::Item &DRTBlockSlabSequence::operator[](const unsigned long num) const +const DRTBlockSlabSequence::Item &DRTBlockSlabSequence::operator[](const size_t num) const { return getItem(num); } @@ -450,7 +450,7 @@ OFCondition DRTBlockSlabSequence::addItem(Item *&item) } -OFCondition DRTBlockSlabSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBlockSlabSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -473,7 +473,7 @@ OFCondition DRTBlockSlabSequence::insertItem(const unsigned long pos, Item *&ite } -OFCondition DRTBlockSlabSequence::removeItem(const unsigned long pos) +OFCondition DRTBlockSlabSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbvcps.cc b/dcmrt/libsrc/drtbvcps.cc index 857a7c71..7fc18c19 100644 --- a/dcmrt/libsrc/drtbvcps.cc +++ b/dcmrt/libsrc/drtbvcps.cc @@ -1,14 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamDoseVerificationControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 - * Last modified on 2016-02-20 by J. Riesmeier + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -25,7 +24,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const OFBool emptyDefaul AverageBeamDosePointDepth(DCM_AverageBeamDosePointDepth), AverageBeamDosePointEquivalentDepth(DCM_AverageBeamDosePointEquivalentDepth), AverageBeamDosePointSSD(DCM_AverageBeamDosePointSSD), - AverageBeamDosePointSourceToExternalContourSurfaceDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance), + AverageBeamDosePointSourceToExternalContourDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance), CumulativeMetersetWeight(DCM_CumulativeMetersetWeight), ReferencedControlPointIndex(DCM_ReferencedControlPointIndex) { @@ -37,7 +36,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const Item ©) AverageBeamDosePointDepth(copy.AverageBeamDosePointDepth), AverageBeamDosePointEquivalentDepth(copy.AverageBeamDosePointEquivalentDepth), AverageBeamDosePointSSD(copy.AverageBeamDosePointSSD), - AverageBeamDosePointSourceToExternalContourSurfaceDistance(copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance), + AverageBeamDosePointSourceToExternalContourDistance(copy.AverageBeamDosePointSourceToExternalContourDistance), CumulativeMetersetWeight(copy.CumulativeMetersetWeight), ReferencedControlPointIndex(copy.ReferencedControlPointIndex) { @@ -57,7 +56,7 @@ DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationContro AverageBeamDosePointDepth = copy.AverageBeamDosePointDepth; AverageBeamDosePointEquivalentDepth = copy.AverageBeamDosePointEquivalentDepth; AverageBeamDosePointSSD = copy.AverageBeamDosePointSSD; - AverageBeamDosePointSourceToExternalContourSurfaceDistance = copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance; + AverageBeamDosePointSourceToExternalContourDistance = copy.AverageBeamDosePointSourceToExternalContourDistance; CumulativeMetersetWeight = copy.CumulativeMetersetWeight; ReferencedControlPointIndex = copy.ReferencedControlPointIndex; } @@ -75,7 +74,7 @@ void DRTBeamDoseVerificationControlPointSequence::Item::clear() AverageBeamDosePointDepth.clear(); AverageBeamDosePointEquivalentDepth.clear(); AverageBeamDosePointSSD.clear(); - AverageBeamDosePointSourceToExternalContourSurfaceDistance.clear(); + AverageBeamDosePointSourceToExternalContourDistance.clear(); } } @@ -87,7 +86,7 @@ OFBool DRTBeamDoseVerificationControlPointSequence::Item::isEmpty() AverageBeamDosePointDepth.isEmpty() && AverageBeamDosePointEquivalentDepth.isEmpty() && AverageBeamDosePointSSD.isEmpty() && - AverageBeamDosePointSourceToExternalContourSurfaceDistance.isEmpty(); + AverageBeamDosePointSourceToExternalContourDistance.isEmpty(); } @@ -109,7 +108,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::read(DcmItem &ite getAndCheckElementFromDataset(item, AverageBeamDosePointDepth, "1", "2C", "BeamDoseVerificationControlPointSequence"); getAndCheckElementFromDataset(item, AverageBeamDosePointEquivalentDepth, "1", "2C", "BeamDoseVerificationControlPointSequence"); getAndCheckElementFromDataset(item, AverageBeamDosePointSSD, "1", "2C", "BeamDoseVerificationControlPointSequence"); - getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourSurfaceDistance, "1", "3", "BeamDoseVerificationControlPointSequence"); + getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourDistance, "1", "3", "BeamDoseVerificationControlPointSequence"); result = EC_Normal; } return result; @@ -127,7 +126,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::write(DcmItem &it addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointDepth), "1", "2C", "BeamDoseVerificationControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointEquivalentDepth), "1", "2C", "BeamDoseVerificationControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSSD), "1", "2C", "BeamDoseVerificationControlPointSequence"); - addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourSurfaceDistance), "1", "3", "BeamDoseVerificationControlPointSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourDistance), "1", "3", "BeamDoseVerificationControlPointSequence"); } return result; } @@ -160,12 +159,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDos } -OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos) const +OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; else - return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourSurfaceDistance).getFloat32(value, pos); + return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourDistance).getFloat32(value, pos); } @@ -232,12 +231,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDos } -OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos) +OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos) { if (EmptyDefaultItem) return EC_IllegalCall; else - return AverageBeamDosePointSourceToExternalContourSurfaceDistance.putFloat32(value, pos); + return AverageBeamDosePointSourceToExternalContourDistance.putFloat32(value, pos); } @@ -370,7 +369,7 @@ OFBool DRTBeamDoseVerificationControlPointSequence::isValid() const } -unsigned long DRTBeamDoseVerificationControlPointSequence::getNumberOfItems() const +size_t DRTBeamDoseVerificationControlPointSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -400,12 +399,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::gotoNextItem() } -OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -420,12 +419,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const unsigned } -OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -440,7 +439,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const unsigned } -OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const unsigned long num) +OFCondition DRTBeamDoseVerificationControlPointSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -476,7 +475,7 @@ const DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerification } -OFCondition DRTBeamDoseVerificationControlPointSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTBeamDoseVerificationControlPointSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -486,7 +485,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::getItem(const unsigned } -DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::getItem(const unsigned long num) +DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -496,7 +495,7 @@ DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationContro } -const DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::getItem(const unsigned long num) const +const DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -506,13 +505,13 @@ const DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerification } -DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::operator[](const unsigned long num) +DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::operator[](const size_t num) { return getItem(num); } -const DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::operator[](const unsigned long num) const +const DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationControlPointSequence::operator[](const size_t num) const { return getItem(num); } @@ -535,7 +534,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::addItem(Item *&item) } -OFCondition DRTBeamDoseVerificationControlPointSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTBeamDoseVerificationControlPointSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -558,7 +557,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::insertItem(const unsign } -OFCondition DRTBeamDoseVerificationControlPointSequence::removeItem(const unsigned long pos) +OFCondition DRTBeamDoseVerificationControlPointSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcbars.cc b/dcmrt/libsrc/drtcbars.cc index bc815f02..911e630b 100644 --- a/dcmrt/libsrc/drtcbars.cc +++ b/dcmrt/libsrc/drtcbars.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContrastBolusAdministrationRouteSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -35,6 +35,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const OFBool emptyDefaul EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -57,6 +58,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -87,6 +89,7 @@ DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministratio EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -110,6 +113,7 @@ void DRTContrastBolusAdministrationRouteSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -132,6 +136,7 @@ OFBool DRTContrastBolusAdministrationRouteSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -164,6 +169,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::read(DcmItem &ite getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAdministrationRouteSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence"); @@ -192,6 +198,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::write(DcmItem &it addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAdministrationRouteSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence"); @@ -310,6 +317,15 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourc } +OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -484,6 +500,19 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourc } +OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -613,7 +642,7 @@ OFBool DRTContrastBolusAdministrationRouteSequence::isValid() const } -unsigned long DRTContrastBolusAdministrationRouteSequence::getNumberOfItems() const +size_t DRTContrastBolusAdministrationRouteSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -643,12 +672,12 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::gotoNextItem() } -OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -663,12 +692,12 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const unsigned } -OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -683,7 +712,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const unsigned } -OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const unsigned long num) +OFCondition DRTContrastBolusAdministrationRouteSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -719,7 +748,7 @@ const DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdminis } -OFCondition DRTContrastBolusAdministrationRouteSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTContrastBolusAdministrationRouteSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -729,7 +758,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::getItem(const unsigned } -DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::getItem(const unsigned long num) +DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -739,7 +768,7 @@ DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministratio } -const DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::getItem(const unsigned long num) const +const DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -749,13 +778,13 @@ const DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdminis } -DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::operator[](const unsigned long num) +DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::operator[](const size_t num) { return getItem(num); } -const DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::operator[](const unsigned long num) const +const DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministrationRouteSequence::operator[](const size_t num) const { return getItem(num); } @@ -778,7 +807,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::addItem(Item *&item) } -OFCondition DRTContrastBolusAdministrationRouteSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTContrastBolusAdministrationRouteSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -801,7 +830,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::insertItem(const unsign } -OFCondition DRTContrastBolusAdministrationRouteSequence::removeItem(const unsigned long pos) +OFCondition DRTContrastBolusAdministrationRouteSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtccs.cc b/dcmrt/libsrc/drtccs.cc index 979f490e..545c6f86 100644 --- a/dcmrt/libsrc/drtccs.cc +++ b/dcmrt/libsrc/drtccs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConceptCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTConceptCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTConceptCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::Item::operator=(const Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTConceptCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTConceptCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTConceptCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTConceptCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTConceptCodeSequence::Item::getMappingResource(OFString &value, co } +OFCondition DRTConceptCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTConceptCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTConceptCodeSequence::Item::setMappingResource(const OFString &val } +OFCondition DRTConceptCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTConceptCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTConceptCodeSequence::isValid() const } -unsigned long DRTConceptCodeSequence::getNumberOfItems() const +size_t DRTConceptCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTConceptCodeSequence::gotoNextItem() } -OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTConceptCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListIter } -OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTConceptCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListCons } -OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTConceptCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getCurrentItem() con } -OFCondition DRTConceptCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTConceptCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTConceptCodeSequence::getItem(const unsigned long num, Item *&item } -DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsigned long num) +DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsigned lon } -const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsigned long num) const +const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsign } -DRTConceptCodeSequence::Item &DRTConceptCodeSequence::operator[](const unsigned long num) +DRTConceptCodeSequence::Item &DRTConceptCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::operator[](const unsigned long num) const +const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTConceptCodeSequence::addItem(Item *&item) } -OFCondition DRTConceptCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTConceptCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTConceptCodeSequence::insertItem(const unsigned long pos, Item *&i } -OFCondition DRTConceptCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTConceptCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcctus.cc b/dcmrt/libsrc/drtcctus.cc index 731881ad..bc56cdc1 100644 --- a/dcmrt/libsrc/drtcctus.cc +++ b/dcmrt/libsrc/drtcctus.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConsentForClinicalTrialUseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -280,7 +280,7 @@ OFBool DRTConsentForClinicalTrialUseSequence::isValid() const } -unsigned long DRTConsentForClinicalTrialUseSequence::getNumberOfItems() const +size_t DRTConsentForClinicalTrialUseSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -310,12 +310,12 @@ OFCondition DRTConsentForClinicalTrialUseSequence::gotoNextItem() } -OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,12 +330,12 @@ OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long } -OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -350,7 +350,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long } -OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long num) +OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -386,7 +386,7 @@ const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUse } -OFCondition DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTConsentForClinicalTrialUseSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -396,7 +396,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long n } -DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long num) +DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -406,7 +406,7 @@ DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequen } -const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long num) const +const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -416,13 +416,13 @@ const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUse } -DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::operator[](const unsigned long num) +DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::operator[](const size_t num) { return getItem(num); } -const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::operator[](const unsigned long num) const +const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::operator[](const size_t num) const { return getItem(num); } @@ -445,7 +445,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::addItem(Item *&item) } -OFCondition DRTConsentForClinicalTrialUseSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTConsentForClinicalTrialUseSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -468,7 +468,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::insertItem(const unsigned lon } -OFCondition DRTConsentForClinicalTrialUseSequence::removeItem(const unsigned long pos) +OFCondition DRTConsentForClinicalTrialUseSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcdrs.cc b/dcmrt/libsrc/drtcdrs.cc index 5ffe6cfc..d12447d6 100644 --- a/dcmrt/libsrc/drtcdrs.cc +++ b/dcmrt/libsrc/drtcdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -336,7 +336,7 @@ OFBool DRTCalculatedDoseReferenceSequence::isValid() const } -unsigned long DRTCalculatedDoseReferenceSequence::getNumberOfItems() const +size_t DRTCalculatedDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -366,12 +366,12 @@ OFCondition DRTCalculatedDoseReferenceSequence::gotoNextItem() } -OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -386,12 +386,12 @@ OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const unsigned long num } -OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -406,7 +406,7 @@ OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const unsigned long num } -OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTCalculatedDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -442,7 +442,7 @@ const DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequen } -OFCondition DRTCalculatedDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTCalculatedDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -452,7 +452,7 @@ OFCondition DRTCalculatedDoseReferenceSequence::getItem(const unsigned long num, } -DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::getItem(const unsigned long num) +DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -462,7 +462,7 @@ DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::ge } -const DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::getItem(const unsigned long num) const +const DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -472,13 +472,13 @@ const DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequen } -DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::operator[](const unsigned long num) +DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::operator[](const unsigned long num) const +const DRTCalculatedDoseReferenceSequence::Item &DRTCalculatedDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -501,7 +501,7 @@ OFCondition DRTCalculatedDoseReferenceSequence::addItem(Item *&item) } -OFCondition DRTCalculatedDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTCalculatedDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -524,7 +524,7 @@ OFCondition DRTCalculatedDoseReferenceSequence::insertItem(const unsigned long p } -OFCondition DRTCalculatedDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTCalculatedDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtces.cc b/dcmrt/libsrc/drtces.cc index a0cee02d..55a0f785 100644 --- a/dcmrt/libsrc/drtces.cc +++ b/dcmrt/libsrc/drtces.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContributingEquipmentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -622,7 +622,7 @@ OFBool DRTContributingEquipmentSequence::isValid() const } -unsigned long DRTContributingEquipmentSequence::getNumberOfItems() const +size_t DRTContributingEquipmentSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -652,12 +652,12 @@ OFCondition DRTContributingEquipmentSequence::gotoNextItem() } -OFCondition DRTContributingEquipmentSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTContributingEquipmentSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -672,12 +672,12 @@ OFCondition DRTContributingEquipmentSequence::gotoItem(const unsigned long num, } -OFCondition DRTContributingEquipmentSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTContributingEquipmentSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -692,7 +692,7 @@ OFCondition DRTContributingEquipmentSequence::gotoItem(const unsigned long num, } -OFCondition DRTContributingEquipmentSequence::gotoItem(const unsigned long num) +OFCondition DRTContributingEquipmentSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -728,7 +728,7 @@ const DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence:: } -OFCondition DRTContributingEquipmentSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTContributingEquipmentSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -738,7 +738,7 @@ OFCondition DRTContributingEquipmentSequence::getItem(const unsigned long num, I } -DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::getItem(const unsigned long num) +DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -748,7 +748,7 @@ DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::getIte } -const DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::getItem(const unsigned long num) const +const DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -758,13 +758,13 @@ const DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence:: } -DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::operator[](const unsigned long num) +DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::operator[](const size_t num) { return getItem(num); } -const DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::operator[](const unsigned long num) const +const DRTContributingEquipmentSequence::Item &DRTContributingEquipmentSequence::operator[](const size_t num) const { return getItem(num); } @@ -787,7 +787,7 @@ OFCondition DRTContributingEquipmentSequence::addItem(Item *&item) } -OFCondition DRTContributingEquipmentSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTContributingEquipmentSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -810,7 +810,7 @@ OFCondition DRTContributingEquipmentSequence::insertItem(const unsigned long pos } -OFCondition DRTContributingEquipmentSequence::removeItem(const unsigned long pos) +OFCondition DRTContributingEquipmentSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcgis.cc b/dcmrt/libsrc/drtcgis.cc new file mode 100644 index 00000000..48259b1b --- /dev/null +++ b/dcmrt/libsrc/drtcgis.cc @@ -0,0 +1,631 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTContextGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtcgis.h" + + +// --- item class --- + +DRTContextGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), + MappingResource(DCM_MappingResource) +{ +} + + +DRTContextGroupIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), + MappingResource(copy.MappingResource) +{ +} + + +DRTContextGroupIdentificationSequence::Item::~Item() +{ +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; + MappingResource = copy.MappingResource; + } + return *this; +} + + +void DRTContextGroupIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + ContextGroupVersion.clear(); + } +} + + +OFBool DRTContextGroupIdentificationSequence::Item::isEmpty() +{ + return ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + ContextGroupVersion.isEmpty(); +} + + +OFBool DRTContextGroupIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "1", "ContextGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContextGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1", "ContextGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1", "ContextGroupIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "1", "ContextGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContextGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "ContextGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1", "ContextGroupIdentificationSequence"); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTContextGroupIdentificationSequence &DRTContextGroupIdentificationSequence::operator=(const DRTContextGroupIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTContextGroupIdentificationSequence::~DRTContextGroupIdentificationSequence() +{ + clear(); +} + + +void DRTContextGroupIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTContextGroupIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTContextGroupIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTContextGroupIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTContextGroupIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTContextGroupIdentificationSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTContextGroupIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_ContextGroupIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_ContextGroupIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ContextGroupIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtchs.cc b/dcmrt/libsrc/drtchs.cc index a216b012..cc4524c2 100644 --- a/dcmrt/libsrc/drtchs.cc +++ b/dcmrt/libsrc/drtchs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTChannelSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -989,7 +989,7 @@ OFBool DRTChannelSequence::isValid() const } -unsigned long DRTChannelSequence::getNumberOfItems() const +size_t DRTChannelSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -1019,12 +1019,12 @@ OFCondition DRTChannelSequence::gotoNextItem() } -OFCondition DRTChannelSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTChannelSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1039,12 +1039,12 @@ OFCondition DRTChannelSequence::gotoItem(const unsigned long num, OFListIterator } -OFCondition DRTChannelSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTChannelSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1059,7 +1059,7 @@ OFCondition DRTChannelSequence::gotoItem(const unsigned long num, OFListConstIte } -OFCondition DRTChannelSequence::gotoItem(const unsigned long num) +OFCondition DRTChannelSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1095,7 +1095,7 @@ const DRTChannelSequence::Item &DRTChannelSequence::getCurrentItem() const } -OFCondition DRTChannelSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTChannelSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1105,7 +1105,7 @@ OFCondition DRTChannelSequence::getItem(const unsigned long num, Item *&item) } -DRTChannelSequence::Item &DRTChannelSequence::getItem(const unsigned long num) +DRTChannelSequence::Item &DRTChannelSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1115,7 +1115,7 @@ DRTChannelSequence::Item &DRTChannelSequence::getItem(const unsigned long num) } -const DRTChannelSequence::Item &DRTChannelSequence::getItem(const unsigned long num) const +const DRTChannelSequence::Item &DRTChannelSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1125,13 +1125,13 @@ const DRTChannelSequence::Item &DRTChannelSequence::getItem(const unsigned long } -DRTChannelSequence::Item &DRTChannelSequence::operator[](const unsigned long num) +DRTChannelSequence::Item &DRTChannelSequence::operator[](const size_t num) { return getItem(num); } -const DRTChannelSequence::Item &DRTChannelSequence::operator[](const unsigned long num) const +const DRTChannelSequence::Item &DRTChannelSequence::operator[](const size_t num) const { return getItem(num); } @@ -1154,7 +1154,7 @@ OFCondition DRTChannelSequence::addItem(Item *&item) } -OFCondition DRTChannelSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTChannelSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1177,7 +1177,7 @@ OFCondition DRTChannelSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTChannelSequence::removeItem(const unsigned long pos) +OFCondition DRTChannelSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcims.cc b/dcmrt/libsrc/drtcims.cc index d02068df..c3306a6e 100644 --- a/dcmrt/libsrc/drtcims.cc +++ b/dcmrt/libsrc/drtcims.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContentItemModifierSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -546,7 +546,7 @@ OFBool DRTContentItemModifierSequence::isValid() const } -unsigned long DRTContentItemModifierSequence::getNumberOfItems() const +size_t DRTContentItemModifierSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -576,12 +576,12 @@ OFCondition DRTContentItemModifierSequence::gotoNextItem() } -OFCondition DRTContentItemModifierSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTContentItemModifierSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -596,12 +596,12 @@ OFCondition DRTContentItemModifierSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTContentItemModifierSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTContentItemModifierSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -616,7 +616,7 @@ OFCondition DRTContentItemModifierSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTContentItemModifierSequence::gotoItem(const unsigned long num) +OFCondition DRTContentItemModifierSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -652,7 +652,7 @@ const DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::getC } -OFCondition DRTContentItemModifierSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTContentItemModifierSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -662,7 +662,7 @@ OFCondition DRTContentItemModifierSequence::getItem(const unsigned long num, Ite } -DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::getItem(const unsigned long num) +DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -672,7 +672,7 @@ DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::getItem(co } -const DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::getItem(const unsigned long num) const +const DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -682,13 +682,13 @@ const DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::getI } -DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::operator[](const unsigned long num) +DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::operator[](const size_t num) { return getItem(num); } -const DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::operator[](const unsigned long num) const +const DRTContentItemModifierSequence::Item &DRTContentItemModifierSequence::operator[](const size_t num) const { return getItem(num); } @@ -711,7 +711,7 @@ OFCondition DRTContentItemModifierSequence::addItem(Item *&item) } -OFCondition DRTContentItemModifierSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTContentItemModifierSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -734,7 +734,7 @@ OFCondition DRTContentItemModifierSequence::insertItem(const unsigned long pos, } -OFCondition DRTContentItemModifierSequence::removeItem(const unsigned long pos) +OFCondition DRTContentItemModifierSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcis.cc b/dcmrt/libsrc/drtcis.cc index db289e69..07f482e6 100644 --- a/dcmrt/libsrc/drtcis.cc +++ b/dcmrt/libsrc/drtcis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContourImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -314,7 +314,7 @@ OFBool DRTContourImageSequence::isValid() const } -unsigned long DRTContourImageSequence::getNumberOfItems() const +size_t DRTContourImageSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -344,12 +344,12 @@ OFCondition DRTContourImageSequence::gotoNextItem() } -OFCondition DRTContourImageSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTContourImageSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -364,12 +364,12 @@ OFCondition DRTContourImageSequence::gotoItem(const unsigned long num, OFListIte } -OFCondition DRTContourImageSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTContourImageSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -384,7 +384,7 @@ OFCondition DRTContourImageSequence::gotoItem(const unsigned long num, OFListCon } -OFCondition DRTContourImageSequence::gotoItem(const unsigned long num) +OFCondition DRTContourImageSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -420,7 +420,7 @@ const DRTContourImageSequence::Item &DRTContourImageSequence::getCurrentItem() c } -OFCondition DRTContourImageSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTContourImageSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -430,7 +430,7 @@ OFCondition DRTContourImageSequence::getItem(const unsigned long num, Item *&ite } -DRTContourImageSequence::Item &DRTContourImageSequence::getItem(const unsigned long num) +DRTContourImageSequence::Item &DRTContourImageSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -440,7 +440,7 @@ DRTContourImageSequence::Item &DRTContourImageSequence::getItem(const unsigned l } -const DRTContourImageSequence::Item &DRTContourImageSequence::getItem(const unsigned long num) const +const DRTContourImageSequence::Item &DRTContourImageSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -450,13 +450,13 @@ const DRTContourImageSequence::Item &DRTContourImageSequence::getItem(const unsi } -DRTContourImageSequence::Item &DRTContourImageSequence::operator[](const unsigned long num) +DRTContourImageSequence::Item &DRTContourImageSequence::operator[](const size_t num) { return getItem(num); } -const DRTContourImageSequence::Item &DRTContourImageSequence::operator[](const unsigned long num) const +const DRTContourImageSequence::Item &DRTContourImageSequence::operator[](const size_t num) const { return getItem(num); } @@ -479,7 +479,7 @@ OFCondition DRTContourImageSequence::addItem(Item *&item) } -OFCondition DRTContourImageSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTContourImageSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -502,7 +502,7 @@ OFCondition DRTContourImageSequence::insertItem(const unsigned long pos, Item *& } -OFCondition DRTContourImageSequence::removeItem(const unsigned long pos) +OFCondition DRTContourImageSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcncs.cc b/dcmrt/libsrc/drtcncs.cc index 39866644..7bc5014d 100644 --- a/dcmrt/libsrc/drtcncs.cc +++ b/dcmrt/libsrc/drtcncs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConceptNameCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTConceptNameCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTConceptNameCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::Item::operator=(co EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTConceptNameCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTConceptNameCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTConceptNameCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptNameCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptNameCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTConceptNameCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptNameCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptNameCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTConceptNameCodeSequence::Item::getMappingResource(OFString &value } +OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTConceptNameCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTConceptNameCodeSequence::isValid() const } -unsigned long DRTConceptNameCodeSequence::getNumberOfItems() const +size_t DRTConceptNameCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTConceptNameCodeSequence::gotoNextItem() } -OFCondition DRTConceptNameCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTConceptNameCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTConceptNameCodeSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTConceptNameCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTConceptNameCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTConceptNameCodeSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTConceptNameCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTConceptNameCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::getCurrentIt } -OFCondition DRTConceptNameCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTConceptNameCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTConceptNameCodeSequence::getItem(const unsigned long num, Item *& } -DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::getItem(const unsigned long num) +DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::getItem(const unsi } -const DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::getItem(const unsigned long num) const +const DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::getItem(cons } -DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::operator[](const unsigned long num) +DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::operator[](const unsigned long num) const +const DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTConceptNameCodeSequence::addItem(Item *&item) } -OFCondition DRTConceptNameCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTConceptNameCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTConceptNameCodeSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTConceptNameCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTConceptNameCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcos.cc b/dcmrt/libsrc/drtcos.cc index d2b31cf3..faa96fca 100644 --- a/dcmrt/libsrc/drtcos.cc +++ b/dcmrt/libsrc/drtcos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -37,7 +37,8 @@ DRTCompensatorSequence::Item::Item(const OFBool emptyDefaultItem) CompensatorType(DCM_CompensatorType), MaterialID(DCM_MaterialID), SourceToCompensatorDistance(DCM_SourceToCompensatorDistance), - SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance) + SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance), + TrayAccessoryCode(DCM_TrayAccessoryCode) { } @@ -60,7 +61,8 @@ DRTCompensatorSequence::Item::Item(const Item ©) CompensatorType(copy.CompensatorType), MaterialID(copy.MaterialID), SourceToCompensatorDistance(copy.SourceToCompensatorDistance), - SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance) + SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance), + TrayAccessoryCode(copy.TrayAccessoryCode) { } @@ -92,6 +94,7 @@ DRTCompensatorSequence::Item &DRTCompensatorSequence::Item::operator=(const Item MaterialID = copy.MaterialID; SourceToCompensatorDistance = copy.SourceToCompensatorDistance; SourceToCompensatorTrayDistance = copy.SourceToCompensatorTrayDistance; + TrayAccessoryCode = copy.TrayAccessoryCode; } return *this; } @@ -109,6 +112,7 @@ void DRTCompensatorSequence::Item::clear() CompensatorID.clear(); AccessoryCode.clear(); CompensatorTrayID.clear(); + TrayAccessoryCode.clear(); SourceToCompensatorTrayDistance.clear(); CompensatorDivergence.clear(); CompensatorMountingPosition.clear(); @@ -132,6 +136,7 @@ OFBool DRTCompensatorSequence::Item::isEmpty() CompensatorID.isEmpty() && AccessoryCode.isEmpty() && CompensatorTrayID.isEmpty() && + TrayAccessoryCode.isEmpty() && SourceToCompensatorTrayDistance.isEmpty() && CompensatorDivergence.isEmpty() && CompensatorMountingPosition.isEmpty() && @@ -165,6 +170,7 @@ OFCondition DRTCompensatorSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, CompensatorID, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, CompensatorTrayID, "1", "3", "CompensatorSequence"); + getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, SourceToCompensatorTrayDistance, "1", "2", "CompensatorSequence"); getAndCheckElementFromDataset(item, CompensatorDivergence, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, CompensatorMountingPosition, "1", "3", "CompensatorSequence"); @@ -194,6 +200,7 @@ OFCondition DRTCompensatorSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmShortString(CompensatorID), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmShortString(CompensatorTrayID), "1", "3", "CompensatorSequence"); + addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmDecimalString(SourceToCompensatorTrayDistance), "1", "2", "CompensatorSequence"); addElementToDataset(result, item, new DcmCodeString(CompensatorDivergence), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmCodeString(CompensatorMountingPosition), "1", "3", "CompensatorSequence"); @@ -488,6 +495,15 @@ OFCondition DRTCompensatorSequence::Item::getSourceToCompensatorTrayDistance(Flo } +OFCondition DRTCompensatorSequence::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(TrayAccessoryCode, value, pos); +} + + OFCondition DRTCompensatorSequence::Item::setAccessoryCode(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -709,6 +725,19 @@ OFCondition DRTCompensatorSequence::Item::setSourceToCompensatorTrayDistance(con } +OFCondition DRTCompensatorSequence::Item::setTrayAccessoryCode(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = TrayAccessoryCode.putOFStringArray(value); + } + return result; +} + + // --- sequence class --- DRTCompensatorSequence::DRTCompensatorSequence(const OFBool emptyDefaultSequence) @@ -812,7 +841,7 @@ OFBool DRTCompensatorSequence::isValid() const } -unsigned long DRTCompensatorSequence::getNumberOfItems() const +size_t DRTCompensatorSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -842,12 +871,12 @@ OFCondition DRTCompensatorSequence::gotoNextItem() } -OFCondition DRTCompensatorSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTCompensatorSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -862,12 +891,12 @@ OFCondition DRTCompensatorSequence::gotoItem(const unsigned long num, OFListIter } -OFCondition DRTCompensatorSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTCompensatorSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -882,7 +911,7 @@ OFCondition DRTCompensatorSequence::gotoItem(const unsigned long num, OFListCons } -OFCondition DRTCompensatorSequence::gotoItem(const unsigned long num) +OFCondition DRTCompensatorSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -918,7 +947,7 @@ const DRTCompensatorSequence::Item &DRTCompensatorSequence::getCurrentItem() con } -OFCondition DRTCompensatorSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTCompensatorSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -928,7 +957,7 @@ OFCondition DRTCompensatorSequence::getItem(const unsigned long num, Item *&item } -DRTCompensatorSequence::Item &DRTCompensatorSequence::getItem(const unsigned long num) +DRTCompensatorSequence::Item &DRTCompensatorSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -938,7 +967,7 @@ DRTCompensatorSequence::Item &DRTCompensatorSequence::getItem(const unsigned lon } -const DRTCompensatorSequence::Item &DRTCompensatorSequence::getItem(const unsigned long num) const +const DRTCompensatorSequence::Item &DRTCompensatorSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -948,13 +977,13 @@ const DRTCompensatorSequence::Item &DRTCompensatorSequence::getItem(const unsign } -DRTCompensatorSequence::Item &DRTCompensatorSequence::operator[](const unsigned long num) +DRTCompensatorSequence::Item &DRTCompensatorSequence::operator[](const size_t num) { return getItem(num); } -const DRTCompensatorSequence::Item &DRTCompensatorSequence::operator[](const unsigned long num) const +const DRTCompensatorSequence::Item &DRTCompensatorSequence::operator[](const size_t num) const { return getItem(num); } @@ -977,7 +1006,7 @@ OFCondition DRTCompensatorSequence::addItem(Item *&item) } -OFCondition DRTCompensatorSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTCompensatorSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1000,7 +1029,7 @@ OFCondition DRTCompensatorSequence::insertItem(const unsigned long pos, Item *&i } -OFCondition DRTCompensatorSequence::removeItem(const unsigned long pos) +OFCondition DRTCompensatorSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcpas.cc b/dcmrt/libsrc/drtcpas.cc index 09b601ce..99f7292c 100644 --- a/dcmrt/libsrc/drtcpas.cc +++ b/dcmrt/libsrc/drtcpas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCorrectedParameterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -314,7 +314,7 @@ OFBool DRTCorrectedParameterSequence::isValid() const } -unsigned long DRTCorrectedParameterSequence::getNumberOfItems() const +size_t DRTCorrectedParameterSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -344,12 +344,12 @@ OFCondition DRTCorrectedParameterSequence::gotoNextItem() } -OFCondition DRTCorrectedParameterSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTCorrectedParameterSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -364,12 +364,12 @@ OFCondition DRTCorrectedParameterSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTCorrectedParameterSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTCorrectedParameterSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -384,7 +384,7 @@ OFCondition DRTCorrectedParameterSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTCorrectedParameterSequence::gotoItem(const unsigned long num) +OFCondition DRTCorrectedParameterSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -420,7 +420,7 @@ const DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::getCur } -OFCondition DRTCorrectedParameterSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTCorrectedParameterSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -430,7 +430,7 @@ OFCondition DRTCorrectedParameterSequence::getItem(const unsigned long num, Item } -DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::getItem(const unsigned long num) +DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -440,7 +440,7 @@ DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::getItem(cons } -const DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::getItem(const unsigned long num) const +const DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -450,13 +450,13 @@ const DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::getIte } -DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::operator[](const unsigned long num) +DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::operator[](const size_t num) { return getItem(num); } -const DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::operator[](const unsigned long num) const +const DRTCorrectedParameterSequence::Item &DRTCorrectedParameterSequence::operator[](const size_t num) const { return getItem(num); } @@ -479,7 +479,7 @@ OFCondition DRTCorrectedParameterSequence::addItem(Item *&item) } -OFCondition DRTCorrectedParameterSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTCorrectedParameterSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -502,7 +502,7 @@ OFCondition DRTCorrectedParameterSequence::insertItem(const unsigned long pos, I } -OFCondition DRTCorrectedParameterSequence::removeItem(const unsigned long pos) +OFCondition DRTCorrectedParameterSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcpis.cc b/dcmrt/libsrc/drtcpis.cc index 8ca6f86f..c6914ffc 100644 --- a/dcmrt/libsrc/drtcpis.cc +++ b/dcmrt/libsrc/drtcpis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConsultingPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -352,7 +352,7 @@ OFBool DRTConsultingPhysicianIdentificationSequence::isValid() const } -unsigned long DRTConsultingPhysicianIdentificationSequence::getNumberOfItems() const +size_t DRTConsultingPhysicianIdentificationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -382,12 +382,12 @@ OFCondition DRTConsultingPhysicianIdentificationSequence::gotoNextItem() } -OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -402,12 +402,12 @@ OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const unsigne } -OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -422,7 +422,7 @@ OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const unsigne } -OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const unsigned long num) +OFCondition DRTConsultingPhysicianIdentificationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -458,7 +458,7 @@ const DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysician } -OFCondition DRTConsultingPhysicianIdentificationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTConsultingPhysicianIdentificationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -468,7 +468,7 @@ OFCondition DRTConsultingPhysicianIdentificationSequence::getItem(const unsigned } -DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::getItem(const unsigned long num) +DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -478,7 +478,7 @@ DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdenti } -const DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::getItem(const unsigned long num) const +const DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -488,13 +488,13 @@ const DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysician } -DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::operator[](const unsigned long num) +DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::operator[](const size_t num) { return getItem(num); } -const DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::operator[](const unsigned long num) const +const DRTConsultingPhysicianIdentificationSequence::Item &DRTConsultingPhysicianIdentificationSequence::operator[](const size_t num) const { return getItem(num); } @@ -517,7 +517,7 @@ OFCondition DRTConsultingPhysicianIdentificationSequence::addItem(Item *&item) } -OFCondition DRTConsultingPhysicianIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTConsultingPhysicianIdentificationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -540,7 +540,7 @@ OFCondition DRTConsultingPhysicianIdentificationSequence::insertItem(const unsig } -OFCondition DRTConsultingPhysicianIdentificationSequence::removeItem(const unsigned long pos) +OFCondition DRTConsultingPhysicianIdentificationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcps.cc b/dcmrt/libsrc/drtcps.cc index c3d295a1..241aac6b 100644 --- a/dcmrt/libsrc/drtcps.cc +++ b/dcmrt/libsrc/drtcps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -1137,7 +1137,7 @@ OFBool DRTControlPointSequence::isValid() const } -unsigned long DRTControlPointSequence::getNumberOfItems() const +size_t DRTControlPointSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -1167,12 +1167,12 @@ OFCondition DRTControlPointSequence::gotoNextItem() } -OFCondition DRTControlPointSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTControlPointSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1187,12 +1187,12 @@ OFCondition DRTControlPointSequence::gotoItem(const unsigned long num, OFListIte } -OFCondition DRTControlPointSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTControlPointSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1207,7 +1207,7 @@ OFCondition DRTControlPointSequence::gotoItem(const unsigned long num, OFListCon } -OFCondition DRTControlPointSequence::gotoItem(const unsigned long num) +OFCondition DRTControlPointSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1243,7 +1243,7 @@ const DRTControlPointSequence::Item &DRTControlPointSequence::getCurrentItem() c } -OFCondition DRTControlPointSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTControlPointSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1253,7 +1253,7 @@ OFCondition DRTControlPointSequence::getItem(const unsigned long num, Item *&ite } -DRTControlPointSequence::Item &DRTControlPointSequence::getItem(const unsigned long num) +DRTControlPointSequence::Item &DRTControlPointSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1263,7 +1263,7 @@ DRTControlPointSequence::Item &DRTControlPointSequence::getItem(const unsigned l } -const DRTControlPointSequence::Item &DRTControlPointSequence::getItem(const unsigned long num) const +const DRTControlPointSequence::Item &DRTControlPointSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1273,13 +1273,13 @@ const DRTControlPointSequence::Item &DRTControlPointSequence::getItem(const unsi } -DRTControlPointSequence::Item &DRTControlPointSequence::operator[](const unsigned long num) +DRTControlPointSequence::Item &DRTControlPointSequence::operator[](const size_t num) { return getItem(num); } -const DRTControlPointSequence::Item &DRTControlPointSequence::operator[](const unsigned long num) const +const DRTControlPointSequence::Item &DRTControlPointSequence::operator[](const size_t num) const { return getItem(num); } @@ -1302,7 +1302,7 @@ OFCondition DRTControlPointSequence::addItem(Item *&item) } -OFCondition DRTControlPointSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTControlPointSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1325,7 +1325,7 @@ OFCondition DRTControlPointSequence::insertItem(const unsigned long pos, Item *& } -OFCondition DRTControlPointSequence::removeItem(const unsigned long pos) +OFCondition DRTControlPointSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcs.cc b/dcmrt/libsrc/drtcs.cc index c39b275c..e373b25d 100644 --- a/dcmrt/libsrc/drtcs.cc +++ b/dcmrt/libsrc/drtcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -475,7 +475,7 @@ OFBool DRTContourSequence::isValid() const } -unsigned long DRTContourSequence::getNumberOfItems() const +size_t DRTContourSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -505,12 +505,12 @@ OFCondition DRTContourSequence::gotoNextItem() } -OFCondition DRTContourSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTContourSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -525,12 +525,12 @@ OFCondition DRTContourSequence::gotoItem(const unsigned long num, OFListIterator } -OFCondition DRTContourSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTContourSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -545,7 +545,7 @@ OFCondition DRTContourSequence::gotoItem(const unsigned long num, OFListConstIte } -OFCondition DRTContourSequence::gotoItem(const unsigned long num) +OFCondition DRTContourSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -581,7 +581,7 @@ const DRTContourSequence::Item &DRTContourSequence::getCurrentItem() const } -OFCondition DRTContourSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTContourSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -591,7 +591,7 @@ OFCondition DRTContourSequence::getItem(const unsigned long num, Item *&item) } -DRTContourSequence::Item &DRTContourSequence::getItem(const unsigned long num) +DRTContourSequence::Item &DRTContourSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -601,7 +601,7 @@ DRTContourSequence::Item &DRTContourSequence::getItem(const unsigned long num) } -const DRTContourSequence::Item &DRTContourSequence::getItem(const unsigned long num) const +const DRTContourSequence::Item &DRTContourSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -611,13 +611,13 @@ const DRTContourSequence::Item &DRTContourSequence::getItem(const unsigned long } -DRTContourSequence::Item &DRTContourSequence::operator[](const unsigned long num) +DRTContourSequence::Item &DRTContourSequence::operator[](const size_t num) { return getItem(num); } -const DRTContourSequence::Item &DRTContourSequence::operator[](const unsigned long num) const +const DRTContourSequence::Item &DRTContourSequence::operator[](const size_t num) const { return getItem(num); } @@ -640,7 +640,7 @@ OFCondition DRTContourSequence::addItem(Item *&item) } -OFCondition DRTContourSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTContourSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -663,7 +663,7 @@ OFCondition DRTContourSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTContourSequence::removeItem(const unsigned long pos) +OFCondition DRTContourSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcsas.cc b/dcmrt/libsrc/drtcsas.cc index c9bb6d26..0a6278eb 100644 --- a/dcmrt/libsrc/drtcsas.cc +++ b/dcmrt/libsrc/drtcsas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConversionSourceAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -314,7 +314,7 @@ OFBool DRTConversionSourceAttributesSequence::isValid() const } -unsigned long DRTConversionSourceAttributesSequence::getNumberOfItems() const +size_t DRTConversionSourceAttributesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -344,12 +344,12 @@ OFCondition DRTConversionSourceAttributesSequence::gotoNextItem() } -OFCondition DRTConversionSourceAttributesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTConversionSourceAttributesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -364,12 +364,12 @@ OFCondition DRTConversionSourceAttributesSequence::gotoItem(const unsigned long } -OFCondition DRTConversionSourceAttributesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTConversionSourceAttributesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -384,7 +384,7 @@ OFCondition DRTConversionSourceAttributesSequence::gotoItem(const unsigned long } -OFCondition DRTConversionSourceAttributesSequence::gotoItem(const unsigned long num) +OFCondition DRTConversionSourceAttributesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -420,7 +420,7 @@ const DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributes } -OFCondition DRTConversionSourceAttributesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTConversionSourceAttributesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -430,7 +430,7 @@ OFCondition DRTConversionSourceAttributesSequence::getItem(const unsigned long n } -DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::getItem(const unsigned long num) +DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -440,7 +440,7 @@ DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequen } -const DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::getItem(const unsigned long num) const +const DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -450,13 +450,13 @@ const DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributes } -DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::operator[](const unsigned long num) +DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::operator[](const size_t num) { return getItem(num); } -const DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::operator[](const unsigned long num) const +const DRTConversionSourceAttributesSequence::Item &DRTConversionSourceAttributesSequence::operator[](const size_t num) const { return getItem(num); } @@ -479,7 +479,7 @@ OFCondition DRTConversionSourceAttributesSequence::addItem(Item *&item) } -OFCondition DRTConversionSourceAttributesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTConversionSourceAttributesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -502,7 +502,7 @@ OFCondition DRTConversionSourceAttributesSequence::insertItem(const unsigned lon } -OFCondition DRTConversionSourceAttributesSequence::removeItem(const unsigned long pos) +OFCondition DRTConversionSourceAttributesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcshs.cc b/dcmrt/libsrc/drtcshs.cc index 4fc8d7be..1a740da5 100644 --- a/dcmrt/libsrc/drtcshs.cc +++ b/dcmrt/libsrc/drtcshs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTChannelShieldSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -432,7 +432,7 @@ OFBool DRTChannelShieldSequence::isValid() const } -unsigned long DRTChannelShieldSequence::getNumberOfItems() const +size_t DRTChannelShieldSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -462,12 +462,12 @@ OFCondition DRTChannelShieldSequence::gotoNextItem() } -OFCondition DRTChannelShieldSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTChannelShieldSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -482,12 +482,12 @@ OFCondition DRTChannelShieldSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTChannelShieldSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTChannelShieldSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -502,7 +502,7 @@ OFCondition DRTChannelShieldSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTChannelShieldSequence::gotoItem(const unsigned long num) +OFCondition DRTChannelShieldSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -538,7 +538,7 @@ const DRTChannelShieldSequence::Item &DRTChannelShieldSequence::getCurrentItem() } -OFCondition DRTChannelShieldSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTChannelShieldSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -548,7 +548,7 @@ OFCondition DRTChannelShieldSequence::getItem(const unsigned long num, Item *&it } -DRTChannelShieldSequence::Item &DRTChannelShieldSequence::getItem(const unsigned long num) +DRTChannelShieldSequence::Item &DRTChannelShieldSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -558,7 +558,7 @@ DRTChannelShieldSequence::Item &DRTChannelShieldSequence::getItem(const unsigned } -const DRTChannelShieldSequence::Item &DRTChannelShieldSequence::getItem(const unsigned long num) const +const DRTChannelShieldSequence::Item &DRTChannelShieldSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -568,13 +568,13 @@ const DRTChannelShieldSequence::Item &DRTChannelShieldSequence::getItem(const un } -DRTChannelShieldSequence::Item &DRTChannelShieldSequence::operator[](const unsigned long num) +DRTChannelShieldSequence::Item &DRTChannelShieldSequence::operator[](const size_t num) { return getItem(num); } -const DRTChannelShieldSequence::Item &DRTChannelShieldSequence::operator[](const unsigned long num) const +const DRTChannelShieldSequence::Item &DRTChannelShieldSequence::operator[](const size_t num) const { return getItem(num); } @@ -597,7 +597,7 @@ OFCondition DRTChannelShieldSequence::addItem(Item *&item) } -OFCondition DRTChannelShieldSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTChannelShieldSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -620,7 +620,7 @@ OFCondition DRTChannelShieldSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTChannelShieldSequence::removeItem(const unsigned long pos) +OFCondition DRTChannelShieldSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcsis.cc b/dcmrt/libsrc/drtcsis.cc index 7504daff..8a0c89b7 100644 --- a/dcmrt/libsrc/drtcsis.cc +++ b/dcmrt/libsrc/drtcsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCodingSchemeIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -396,7 +396,7 @@ OFBool DRTCodingSchemeIdentificationSequence::isValid() const } -unsigned long DRTCodingSchemeIdentificationSequence::getNumberOfItems() const +size_t DRTCodingSchemeIdentificationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -426,12 +426,12 @@ OFCondition DRTCodingSchemeIdentificationSequence::gotoNextItem() } -OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -446,12 +446,12 @@ OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const unsigned long } -OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -466,7 +466,7 @@ OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const unsigned long } -OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const unsigned long num) +OFCondition DRTCodingSchemeIdentificationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -502,7 +502,7 @@ const DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentification } -OFCondition DRTCodingSchemeIdentificationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTCodingSchemeIdentificationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -512,7 +512,7 @@ OFCondition DRTCodingSchemeIdentificationSequence::getItem(const unsigned long n } -DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::getItem(const unsigned long num) +DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -522,7 +522,7 @@ DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequen } -const DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::getItem(const unsigned long num) const +const DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -532,13 +532,13 @@ const DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentification } -DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::operator[](const unsigned long num) +DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::operator[](const size_t num) { return getItem(num); } -const DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::operator[](const unsigned long num) const +const DRTCodingSchemeIdentificationSequence::Item &DRTCodingSchemeIdentificationSequence::operator[](const size_t num) const { return getItem(num); } @@ -561,7 +561,7 @@ OFCondition DRTCodingSchemeIdentificationSequence::addItem(Item *&item) } -OFCondition DRTCodingSchemeIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTCodingSchemeIdentificationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -584,7 +584,7 @@ OFCondition DRTCodingSchemeIdentificationSequence::insertItem(const unsigned lon } -OFCondition DRTCodingSchemeIdentificationSequence::removeItem(const unsigned long pos) +OFCondition DRTCodingSchemeIdentificationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcss.cc b/dcmrt/libsrc/drtcss.cc index 6e2b1e40..bf751dcf 100644 --- a/dcmrt/libsrc/drtcss.cc +++ b/dcmrt/libsrc/drtcss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTChannelSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTChannelSourceSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTChannelSourceSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTChannelSourceSequence::Item &DRTChannelSourceSequence::Item::operator=(const EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTChannelSourceSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTChannelSourceSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTChannelSourceSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ChannelSourceSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ChannelSourceSequence"); @@ -186,6 +192,7 @@ OFCondition DRTChannelSourceSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ChannelSourceSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ChannelSourceSequence"); @@ -303,6 +310,15 @@ OFCondition DRTChannelSourceSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTChannelSourceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTChannelSourceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTChannelSourceSequence::Item::setMappingResource(const OFString &v } +OFCondition DRTChannelSourceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTChannelSourceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTChannelSourceSequence::isValid() const } -unsigned long DRTChannelSourceSequence::getNumberOfItems() const +size_t DRTChannelSourceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTChannelSourceSequence::gotoNextItem() } -OFCondition DRTChannelSourceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTChannelSourceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTChannelSourceSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTChannelSourceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTChannelSourceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTChannelSourceSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTChannelSourceSequence::gotoItem(const unsigned long num) +OFCondition DRTChannelSourceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTChannelSourceSequence::Item &DRTChannelSourceSequence::getCurrentItem() } -OFCondition DRTChannelSourceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTChannelSourceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTChannelSourceSequence::getItem(const unsigned long num, Item *&it } -DRTChannelSourceSequence::Item &DRTChannelSourceSequence::getItem(const unsigned long num) +DRTChannelSourceSequence::Item &DRTChannelSourceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTChannelSourceSequence::Item &DRTChannelSourceSequence::getItem(const unsigned } -const DRTChannelSourceSequence::Item &DRTChannelSourceSequence::getItem(const unsigned long num) const +const DRTChannelSourceSequence::Item &DRTChannelSourceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTChannelSourceSequence::Item &DRTChannelSourceSequence::getItem(const un } -DRTChannelSourceSequence::Item &DRTChannelSourceSequence::operator[](const unsigned long num) +DRTChannelSourceSequence::Item &DRTChannelSourceSequence::operator[](const size_t num) { return getItem(num); } -const DRTChannelSourceSequence::Item &DRTChannelSourceSequence::operator[](const unsigned long num) const +const DRTChannelSourceSequence::Item &DRTChannelSourceSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTChannelSourceSequence::addItem(Item *&item) } -OFCondition DRTChannelSourceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTChannelSourceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTChannelSourceSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTChannelSourceSequence::removeItem(const unsigned long pos) +OFCondition DRTChannelSourceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdcs.cc b/dcmrt/libsrc/drtdcs.cc index 736bd6d3..19ec8f89 100644 --- a/dcmrt/libsrc/drtdcs.cc +++ b/dcmrt/libsrc/drtdcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDerivationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTDerivationCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTDerivationCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::Item::operator=(cons EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTDerivationCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTDerivationCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTDerivationCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DerivationCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DerivationCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTDerivationCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DerivationCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DerivationCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTDerivationCodeSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTDerivationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDerivationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTDerivationCodeSequence::Item::setMappingResource(const OFString & } +OFCondition DRTDerivationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDerivationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTDerivationCodeSequence::isValid() const } -unsigned long DRTDerivationCodeSequence::getNumberOfItems() const +size_t DRTDerivationCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTDerivationCodeSequence::gotoNextItem() } -OFCondition DRTDerivationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDerivationCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTDerivationCodeSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTDerivationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDerivationCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTDerivationCodeSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTDerivationCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTDerivationCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::getCurrentItem } -OFCondition DRTDerivationCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDerivationCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTDerivationCodeSequence::getItem(const unsigned long num, Item *&i } -DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::getItem(const unsigned long num) +DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::getItem(const unsign } -const DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::getItem(const unsigned long num) const +const DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::getItem(const } -DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::operator[](const unsigned long num) +DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::operator[](const unsigned long num) const +const DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTDerivationCodeSequence::addItem(Item *&item) } -OFCondition DRTDerivationCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDerivationCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTDerivationCodeSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTDerivationCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTDerivationCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdddps.cc b/dcmrt/libsrc/drtdddps.cc new file mode 100644 index 00000000..e83e45bc --- /dev/null +++ b/dcmrt/libsrc/drtdddps.cc @@ -0,0 +1,644 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTDeliveredDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtdddps.h" + + +// --- item class --- + +DRTDeliveredDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + DeliveredDistalDepth(DCM_DeliveredDistalDepth), + DeliveredDistalDepthFraction(DCM_DeliveredDistalDepthFraction), + DeliveredNominalRangeModulatedRegionDepths(DCM_DeliveredNominalRangeModulatedRegionDepths), + DeliveredNominalRangeModulationFractions(DCM_DeliveredNominalRangeModulationFractions), + DeliveredReferenceDoseDefinition(DCM_DeliveredReferenceDoseDefinition) +{ +} + + +DRTDeliveredDepthDoseParametersSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + DeliveredDistalDepth(copy.DeliveredDistalDepth), + DeliveredDistalDepthFraction(copy.DeliveredDistalDepthFraction), + DeliveredNominalRangeModulatedRegionDepths(copy.DeliveredNominalRangeModulatedRegionDepths), + DeliveredNominalRangeModulationFractions(copy.DeliveredNominalRangeModulationFractions), + DeliveredReferenceDoseDefinition(copy.DeliveredReferenceDoseDefinition) +{ +} + + +DRTDeliveredDepthDoseParametersSequence::Item::~Item() +{ +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + DeliveredDistalDepth = copy.DeliveredDistalDepth; + DeliveredDistalDepthFraction = copy.DeliveredDistalDepthFraction; + DeliveredNominalRangeModulatedRegionDepths = copy.DeliveredNominalRangeModulatedRegionDepths; + DeliveredNominalRangeModulationFractions = copy.DeliveredNominalRangeModulationFractions; + DeliveredReferenceDoseDefinition = copy.DeliveredReferenceDoseDefinition; + } + return *this; +} + + +void DRTDeliveredDepthDoseParametersSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + DeliveredReferenceDoseDefinition.clear(); + DeliveredDistalDepth.clear(); + DeliveredDistalDepthFraction.clear(); + DeliveredNominalRangeModulatedRegionDepths.clear(); + DeliveredNominalRangeModulationFractions.clear(); + } +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::Item::isEmpty() +{ + return DeliveredReferenceDoseDefinition.isEmpty() && + DeliveredDistalDepth.isEmpty() && + DeliveredDistalDepthFraction.isEmpty() && + DeliveredNominalRangeModulatedRegionDepths.isEmpty() && + DeliveredNominalRangeModulationFractions.isEmpty(); +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, DeliveredReferenceDoseDefinition, "1", "1", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredDistalDepth, "1", "1", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredDistalDepthFraction, "1", "1", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredNominalRangeModulatedRegionDepths, "2", "1C", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredNominalRangeModulationFractions, "2", "1C", "DeliveredDepthDoseParametersSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(DeliveredReferenceDoseDefinition), "1", "1", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepth), "1", "1", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepthFraction), "1", "1", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulatedRegionDepths), "2", "1C", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulationFractions), "2", "1C", "DeliveredDepthDoseParametersSequence"); + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepth(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepth).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepthFraction).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulatedRegionDepths).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulationFractions).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(DeliveredReferenceDoseDefinition, value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepth(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredDistalDepth.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredDistalDepthFraction.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredNominalRangeModulatedRegionDepths.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredNominalRangeModulationFractions.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = DeliveredReferenceDoseDefinition.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTDeliveredDepthDoseParametersSequence &DRTDeliveredDepthDoseParametersSequence::operator=(const DRTDeliveredDepthDoseParametersSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTDeliveredDepthDoseParametersSequence::~DRTDeliveredDepthDoseParametersSequence() +{ + clear(); +} + + +void DRTDeliveredDepthDoseParametersSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTDeliveredDepthDoseParametersSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_DeliveredDepthDoseParametersSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_DeliveredDepthDoseParametersSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DeliveredDepthDoseParametersSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtddps.cc b/dcmrt/libsrc/drtddps.cc new file mode 100644 index 00000000..c6c14cdb --- /dev/null +++ b/dcmrt/libsrc/drtddps.cc @@ -0,0 +1,644 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtddps.h" + + +// --- item class --- + +DRTDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + DistalDepth(DCM_DistalDepth), + DistalDepthFraction(DCM_DistalDepthFraction), + NominalRangeModulatedRegionDepths(DCM_NominalRangeModulatedRegionDepths), + NominalRangeModulationFractions(DCM_NominalRangeModulationFractions), + ReferenceDoseDefinition(DCM_ReferenceDoseDefinition) +{ +} + + +DRTDepthDoseParametersSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + DistalDepth(copy.DistalDepth), + DistalDepthFraction(copy.DistalDepthFraction), + NominalRangeModulatedRegionDepths(copy.NominalRangeModulatedRegionDepths), + NominalRangeModulationFractions(copy.NominalRangeModulationFractions), + ReferenceDoseDefinition(copy.ReferenceDoseDefinition) +{ +} + + +DRTDepthDoseParametersSequence::Item::~Item() +{ +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + DistalDepth = copy.DistalDepth; + DistalDepthFraction = copy.DistalDepthFraction; + NominalRangeModulatedRegionDepths = copy.NominalRangeModulatedRegionDepths; + NominalRangeModulationFractions = copy.NominalRangeModulationFractions; + ReferenceDoseDefinition = copy.ReferenceDoseDefinition; + } + return *this; +} + + +void DRTDepthDoseParametersSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + ReferenceDoseDefinition.clear(); + DistalDepth.clear(); + DistalDepthFraction.clear(); + NominalRangeModulatedRegionDepths.clear(); + NominalRangeModulationFractions.clear(); + } +} + + +OFBool DRTDepthDoseParametersSequence::Item::isEmpty() +{ + return ReferenceDoseDefinition.isEmpty() && + DistalDepth.isEmpty() && + DistalDepthFraction.isEmpty() && + NominalRangeModulatedRegionDepths.isEmpty() && + NominalRangeModulationFractions.isEmpty(); +} + + +OFBool DRTDepthDoseParametersSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTDepthDoseParametersSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, ReferenceDoseDefinition, "1", "1", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DistalDepth, "1", "1", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DistalDepthFraction, "1", "1", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, NominalRangeModulatedRegionDepths, "2", "1C", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, NominalRangeModulationFractions, "2", "1C", "DepthDoseParametersSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(ReferenceDoseDefinition), "1", "1", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepth), "1", "1", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepthFraction), "1", "1", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulatedRegionDepths), "2", "1C", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulationFractions), "2", "1C", "DepthDoseParametersSequence"); + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepth(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DistalDepth).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepthFraction(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DistalDepthFraction).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulatedRegionDepths).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulationFractions).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getReferenceDoseDefinition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ReferenceDoseDefinition, value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepth(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DistalDepth.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepthFraction(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DistalDepthFraction.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return NominalRangeModulatedRegionDepths.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulationFractions(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return NominalRangeModulationFractions.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setReferenceDoseDefinition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ReferenceDoseDefinition.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTDepthDoseParametersSequence &DRTDepthDoseParametersSequence::operator=(const DRTDepthDoseParametersSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTDepthDoseParametersSequence::~DRTDepthDoseParametersSequence() +{ + clear(); +} + + +void DRTDepthDoseParametersSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTDepthDoseParametersSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTDepthDoseParametersSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTDepthDoseParametersSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTDepthDoseParametersSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTDepthDoseParametersSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTDepthDoseParametersSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTDepthDoseParametersSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_DepthDoseParametersSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_DepthDoseParametersSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DepthDoseParametersSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtdias.cc b/dcmrt/libsrc/drtdias.cc index 70d3afba..2bf0975e 100644 --- a/dcmrt/libsrc/drtdias.cc +++ b/dcmrt/libsrc/drtdias.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDeidentificationActionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -247,7 +247,7 @@ OFBool DRTDeidentificationActionSequence::isValid() const } -unsigned long DRTDeidentificationActionSequence::getNumberOfItems() const +size_t DRTDeidentificationActionSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -277,12 +277,12 @@ OFCondition DRTDeidentificationActionSequence::gotoNextItem() } -OFCondition DRTDeidentificationActionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDeidentificationActionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -297,12 +297,12 @@ OFCondition DRTDeidentificationActionSequence::gotoItem(const unsigned long num, } -OFCondition DRTDeidentificationActionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDeidentificationActionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -317,7 +317,7 @@ OFCondition DRTDeidentificationActionSequence::gotoItem(const unsigned long num, } -OFCondition DRTDeidentificationActionSequence::gotoItem(const unsigned long num) +OFCondition DRTDeidentificationActionSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -353,7 +353,7 @@ const DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence } -OFCondition DRTDeidentificationActionSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDeidentificationActionSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -363,7 +363,7 @@ OFCondition DRTDeidentificationActionSequence::getItem(const unsigned long num, } -DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::getItem(const unsigned long num) +DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -373,7 +373,7 @@ DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::getI } -const DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::getItem(const unsigned long num) const +const DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -383,13 +383,13 @@ const DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence } -DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::operator[](const unsigned long num) +DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::operator[](const size_t num) { return getItem(num); } -const DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::operator[](const unsigned long num) const +const DRTDeidentificationActionSequence::Item &DRTDeidentificationActionSequence::operator[](const size_t num) const { return getItem(num); } @@ -412,7 +412,7 @@ OFCondition DRTDeidentificationActionSequence::addItem(Item *&item) } -OFCondition DRTDeidentificationActionSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDeidentificationActionSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -435,7 +435,7 @@ OFCondition DRTDeidentificationActionSequence::insertItem(const unsigned long po } -OFCondition DRTDeidentificationActionSequence::removeItem(const unsigned long pos) +OFCondition DRTDeidentificationActionSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdimcs.cc b/dcmrt/libsrc/drtdimcs.cc index 05fcc5b6..34e3c04c 100644 --- a/dcmrt/libsrc/drtdimcs.cc +++ b/dcmrt/libsrc/drtdimcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDeidentificationMethodCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequen EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTDeidentificationMethodCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTDeidentificationMethodCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeidentificationMethodCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeidentificationMethodCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeidentificationMethodCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeidentificationMethodCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResource(OFSt } +OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResource(cons } +OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTDeidentificationMethodCodeSequence::isValid() const } -unsigned long DRTDeidentificationMethodCodeSequence::getNumberOfItems() const +size_t DRTDeidentificationMethodCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTDeidentificationMethodCodeSequence::gotoNextItem() } -OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const unsigned long } -OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const unsigned long } -OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTDeidentificationMethodCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCode } -OFCondition DRTDeidentificationMethodCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDeidentificationMethodCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::getItem(const unsigned long n } -DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::getItem(const unsigned long num) +DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequen } -const DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::getItem(const unsigned long num) const +const DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCode } -DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::operator[](const unsigned long num) +DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::operator[](const unsigned long num) const +const DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::addItem(Item *&item) } -OFCondition DRTDeidentificationMethodCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDeidentificationMethodCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::insertItem(const unsigned lon } -OFCondition DRTDeidentificationMethodCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTDeidentificationMethodCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdimrs.cc b/dcmrt/libsrc/drtdimrs.cc index 89620c18..fde7162a 100644 --- a/dcmrt/libsrc/drtdimrs.cc +++ b/dcmrt/libsrc/drtdimrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDICOMMediaRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTDICOMMediaRetrievalSequence::isValid() const } -unsigned long DRTDICOMMediaRetrievalSequence::getNumberOfItems() const +size_t DRTDICOMMediaRetrievalSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTDICOMMediaRetrievalSequence::gotoNextItem() } -OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const unsigned long num) +OFCondition DRTDICOMMediaRetrievalSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::getC } -OFCondition DRTDICOMMediaRetrievalSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDICOMMediaRetrievalSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTDICOMMediaRetrievalSequence::getItem(const unsigned long num, Ite } -DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::getItem(const unsigned long num) +DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::getItem(co } -const DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::getItem(const unsigned long num) const +const DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::getI } -DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::operator[](const unsigned long num) +DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::operator[](const size_t num) { return getItem(num); } -const DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::operator[](const unsigned long num) const +const DRTDICOMMediaRetrievalSequence::Item &DRTDICOMMediaRetrievalSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTDICOMMediaRetrievalSequence::addItem(Item *&item) } -OFCondition DRTDICOMMediaRetrievalSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDICOMMediaRetrievalSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTDICOMMediaRetrievalSequence::insertItem(const unsigned long pos, } -OFCondition DRTDICOMMediaRetrievalSequence::removeItem(const unsigned long pos) +OFCondition DRTDICOMMediaRetrievalSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdirs.cc b/dcmrt/libsrc/drtdirs.cc index 1d28f30a..9e75110e 100644 --- a/dcmrt/libsrc/drtdirs.cc +++ b/dcmrt/libsrc/drtdirs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDICOMRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -222,7 +222,7 @@ OFBool DRTDICOMRetrievalSequence::isValid() const } -unsigned long DRTDICOMRetrievalSequence::getNumberOfItems() const +size_t DRTDICOMRetrievalSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -252,12 +252,12 @@ OFCondition DRTDICOMRetrievalSequence::gotoNextItem() } -OFCondition DRTDICOMRetrievalSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDICOMRetrievalSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -272,12 +272,12 @@ OFCondition DRTDICOMRetrievalSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTDICOMRetrievalSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDICOMRetrievalSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -292,7 +292,7 @@ OFCondition DRTDICOMRetrievalSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTDICOMRetrievalSequence::gotoItem(const unsigned long num) +OFCondition DRTDICOMRetrievalSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -328,7 +328,7 @@ const DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::getCurrentItem } -OFCondition DRTDICOMRetrievalSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDICOMRetrievalSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -338,7 +338,7 @@ OFCondition DRTDICOMRetrievalSequence::getItem(const unsigned long num, Item *&i } -DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::getItem(const unsigned long num) +DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -348,7 +348,7 @@ DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::getItem(const unsign } -const DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::getItem(const unsigned long num) const +const DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -358,13 +358,13 @@ const DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::getItem(const } -DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::operator[](const unsigned long num) +DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::operator[](const size_t num) { return getItem(num); } -const DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::operator[](const unsigned long num) const +const DRTDICOMRetrievalSequence::Item &DRTDICOMRetrievalSequence::operator[](const size_t num) const { return getItem(num); } @@ -387,7 +387,7 @@ OFCondition DRTDICOMRetrievalSequence::addItem(Item *&item) } -OFCondition DRTDICOMRetrievalSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDICOMRetrievalSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -410,7 +410,7 @@ OFCondition DRTDICOMRetrievalSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTDICOMRetrievalSequence::removeItem(const unsigned long pos) +OFCondition DRTDICOMRetrievalSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdose.cc b/dcmrt/libsrc/drtdose.cc index aee59807..64e76b3f 100644 --- a/dcmrt/libsrc/drtdose.cc +++ b/dcmrt/libsrc/drtdose.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDoseIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,6 +23,9 @@ DRTDoseIOD::DRTDoseIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTDoseIOD::DRTDoseIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTDoseIOD::DRTDoseIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTDoseIOD::DRTDoseIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTDoseIOD::DRTDoseIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -133,9 +154,6 @@ DRTDoseIOD::DRTDoseIOD() AcquisitionDate(DCM_AcquisitionDate), AcquisitionTime(DCM_AcquisitionTime), AcquisitionDateTime(DCM_AcquisitionDateTime), - ReferencedImageSequence(), - DerivationDescription(DCM_DerivationDescription), - SourceImageSequence(), ImagesInAcquisition(DCM_ImagesInAcquisition), ImageComments(DCM_ImageComments), QualityControlImage(DCM_QualityControlImage), @@ -155,7 +173,6 @@ DRTDoseIOD::DRTDoseIOD() SliceLocation(DCM_SliceLocation), Rows(DCM_Rows), Columns(DCM_Columns), - PixelData(DCM_PixelData), PlanarConfiguration(DCM_PlanarConfiguration), PixelAspectRatio(DCM_PixelAspectRatio), SmallestImagePixelValue(DCM_SmallestImagePixelValue), @@ -167,6 +184,8 @@ DRTDoseIOD::DRTDoseIOD() GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData), ICCProfile(DCM_ICCProfile), + ColorSpace(DCM_ColorSpace), + PixelData(DCM_PixelData), PixelDataProviderURL(DCM_PixelDataProviderURL), PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit), NumberOfFrames(DCM_NumberOfFrames), @@ -236,6 +255,8 @@ DRTDoseIOD::DRTDoseIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -267,6 +288,9 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -282,12 +306,19 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -321,7 +352,16 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -341,6 +381,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -365,6 +406,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -377,9 +419,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) AcquisitionDate(copy.AcquisitionDate), AcquisitionTime(copy.AcquisitionTime), AcquisitionDateTime(copy.AcquisitionDateTime), - ReferencedImageSequence(copy.ReferencedImageSequence), - DerivationDescription(copy.DerivationDescription), - SourceImageSequence(copy.SourceImageSequence), ImagesInAcquisition(copy.ImagesInAcquisition), ImageComments(copy.ImageComments), QualityControlImage(copy.QualityControlImage), @@ -399,7 +438,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) SliceLocation(copy.SliceLocation), Rows(copy.Rows), Columns(copy.Columns), - PixelData(copy.PixelData), PlanarConfiguration(copy.PlanarConfiguration), PixelAspectRatio(copy.PixelAspectRatio), SmallestImagePixelValue(copy.SmallestImagePixelValue), @@ -411,6 +449,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData), ICCProfile(copy.ICCProfile), + ColorSpace(copy.ColorSpace), + PixelData(copy.PixelData), PixelDataProviderURL(copy.PixelDataProviderURL), PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit), NumberOfFrames(copy.NumberOfFrames), @@ -480,6 +520,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -517,6 +559,9 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -532,12 +577,19 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -571,7 +623,16 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -591,6 +652,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -615,6 +677,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -627,9 +690,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) AcquisitionDate = copy.AcquisitionDate; AcquisitionTime = copy.AcquisitionTime; AcquisitionDateTime = copy.AcquisitionDateTime; - ReferencedImageSequence = copy.ReferencedImageSequence; - DerivationDescription = copy.DerivationDescription; - SourceImageSequence = copy.SourceImageSequence; ImagesInAcquisition = copy.ImagesInAcquisition; ImageComments = copy.ImageComments; QualityControlImage = copy.QualityControlImage; @@ -649,7 +709,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) SliceLocation = copy.SliceLocation; Rows = copy.Rows; Columns = copy.Columns; - PixelData = copy.PixelData; PlanarConfiguration = copy.PlanarConfiguration; PixelAspectRatio = copy.PixelAspectRatio; SmallestImagePixelValue = copy.SmallestImagePixelValue; @@ -661,6 +720,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData; BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData; ICCProfile = copy.ICCProfile; + ColorSpace = copy.ColorSpace; + PixelData = copy.PixelData; PixelDataProviderURL = copy.PixelDataProviderURL; PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit; NumberOfFrames = copy.NumberOfFrames; @@ -730,6 +791,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -762,6 +825,9 @@ void DRTDoseIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -777,12 +843,19 @@ void DRTDoseIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -816,7 +889,16 @@ void DRTDoseIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -836,6 +918,7 @@ void DRTDoseIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -860,6 +943,7 @@ void DRTDoseIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -873,11 +957,6 @@ void DRTDoseIOD::clear() AcquisitionDate.clear(); AcquisitionTime.clear(); AcquisitionDateTime.clear(); - ReferencedImageSequence.clear(); - DerivationDescription.clear(); - DerivationCodeSequence.clear(); - SourceImageSequence.clear(); - ReferencedInstanceSequence.clear(); ImagesInAcquisition.clear(); ImageComments.clear(); QualityControlImage.clear(); @@ -903,7 +982,6 @@ void DRTDoseIOD::clear() BitsStored.clear(); HighBit.clear(); PixelRepresentation.clear(); - PixelData.clear(); PlanarConfiguration.clear(); PixelAspectRatio.clear(); SmallestImagePixelValue.clear(); @@ -915,6 +993,8 @@ void DRTDoseIOD::clear() GreenPaletteColorLookupTableData.clear(); BluePaletteColorLookupTableData.clear(); ICCProfile.clear(); + ColorSpace.clear(); + PixelData.clear(); PixelDataProviderURL.clear(); PixelPaddingRangeLimit.clear(); NumberOfFrames.clear(); @@ -951,6 +1031,8 @@ void DRTDoseIOD::clear() GridFrameOffsetVector.clear(); DoseGridScaling.clear(); TissueHeterogeneityCorrection.clear(); + DerivationCodeSequence.clear(); + ReferencedInstanceSequence.clear(); ReferencedStructureSetSequence.clear(); DVHNormalizationPoint.clear(); DVHNormalizationDoseValue.clear(); @@ -975,6 +1057,8 @@ void DRTDoseIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -1055,6 +1139,7 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -1070,11 +1155,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule"); - ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule"); - // DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - // ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule"); @@ -1113,7 +1193,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule"); - getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule"); @@ -1125,6 +1204,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule"); } @@ -1248,6 +1329,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -1290,6 +1373,9 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -1305,12 +1391,19 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -1366,7 +1459,16 @@ OFCondition DRTDoseIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -1403,6 +1505,7 @@ OFCondition DRTDoseIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -1441,6 +1544,9 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1456,12 +1562,19 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1506,7 +1619,16 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1534,6 +1656,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1567,6 +1690,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1584,11 +1708,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule"); - if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule"); - // if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - // if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule"); @@ -1624,7 +1743,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule"); - addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule"); @@ -1636,6 +1754,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule"); } @@ -1751,6 +1871,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1817,7 +1939,16 @@ OFBool DRTDoseIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1858,9 +1989,6 @@ OFBool DRTDoseIOD::isGeneralImageModulePresent(const OFBool /*complete*/) !AcquisitionDate.isEmpty() || !AcquisitionTime.isEmpty() || !AcquisitionDateTime.isEmpty() || - !ReferencedImageSequence.isEmpty() || - !DerivationDescription.isEmpty() || - !SourceImageSequence.isEmpty() || !ImagesInAcquisition.isEmpty() || !ImageComments.isEmpty() || !QualityControlImage.isEmpty() || @@ -1906,7 +2034,6 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete) /* check whether at least one attribute is present */ return !Rows.isEmpty() || !Columns.isEmpty() || - !PixelData.isEmpty() || !PlanarConfiguration.isEmpty() || !PixelAspectRatio.isEmpty() || !SmallestImagePixelValue.isEmpty() || @@ -1918,6 +2045,8 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete) !GreenPaletteColorLookupTableData.isEmpty() || !BluePaletteColorLookupTableData.isEmpty() || !ICCProfile.isEmpty() || + !ColorSpace.isEmpty() || + !PixelData.isEmpty() || !PixelDataProviderURL.isEmpty() || !PixelPaddingRangeLimit.isEmpty(); } @@ -2116,6 +2245,12 @@ OFCondition DRTDoseIOD::getAdmittingDiagnosesDescription(OFString &value, const } +OFCondition DRTDoseIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTDoseIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos); @@ -2245,6 +2380,12 @@ OFCondition DRTDoseIOD::getClinicalTrialTimePointID(OFString &value, const signe } +OFCondition DRTDoseIOD::getColorSpace(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(ColorSpace, value, pos); +} + + OFCondition DRTDoseIOD::getColumns(Uint16 &value, const unsigned long pos) const { return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos); @@ -2323,12 +2464,6 @@ OFCondition DRTDoseIOD::getDeidentificationMethod(OFString &value, const signed } -OFCondition DRTDoseIOD::getDerivationDescription(OFString &value, const signed long pos) const -{ - return getStringValueFromElement(DerivationDescription, value, pos); -} - - OFCondition DRTDoseIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -2593,6 +2728,12 @@ OFCondition DRTDoseIOD::getLargestImagePixelValue(Uint16 &value, const unsigned } +OFCondition DRTDoseIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTDoseIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -2641,6 +2782,36 @@ OFCondition DRTDoseIOD::getManufacturerModelName(OFString &value, const signed l } +OFCondition DRTDoseIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTDoseIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTDoseIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTDoseIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTDoseIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTDoseIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -2785,18 +2956,42 @@ OFCondition DRTDoseIOD::getPatientAge(OFString &value, const signed long pos) co } +OFCondition DRTDoseIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTDoseIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTDoseIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTDoseIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTDoseIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTDoseIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTDoseIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -2809,6 +3004,12 @@ OFCondition DRTDoseIOD::getPatientComments(OFString &value, const signed long po } +OFCondition DRTDoseIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTDoseIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -2863,6 +3064,12 @@ OFCondition DRTDoseIOD::getPatientSpeciesDescription(OFString &value, const sign } +OFCondition DRTDoseIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTDoseIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -2989,6 +3196,12 @@ OFCondition DRTDoseIOD::getPositionReferenceIndicator(OFString &value, const sig } +OFCondition DRTDoseIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTDoseIOD::getPresentationLUTShape(OFString &value, const signed long pos) const { return getStringValueFromElement(PresentationLUTShape, value, pos); @@ -3256,6 +3469,12 @@ OFCondition DRTDoseIOD::getSmallestImagePixelValue(Uint16 &value, const unsigned } +OFCondition DRTDoseIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTDoseIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -3298,6 +3517,24 @@ OFCondition DRTDoseIOD::getStereoPairsPresent(OFString &value, const signed long } +OFCondition DRTDoseIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTDoseIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTDoseIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTDoseIOD::getStructureSetDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StructureSetDate, value, pos); @@ -3448,6 +3685,15 @@ OFCondition DRTDoseIOD::setAdmittingDiagnosesDescription(const OFString &value, } +OFCondition DRTDoseIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -3616,6 +3862,15 @@ OFCondition DRTDoseIOD::setClinicalTrialTimePointID(const OFString &value, const } +OFCondition DRTDoseIOD::setColorSpace(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ColorSpace.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setColumns(const Uint16 value, const unsigned long pos) { return Columns.putUint16(value, pos); @@ -3703,15 +3958,6 @@ OFCondition DRTDoseIOD::setDeidentificationMethod(const OFString &value, const O } -OFCondition DRTDoseIOD::setDerivationDescription(const OFString &value, const OFBool check) -{ - OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; - if (result.good()) - result = DerivationDescription.putOFStringArray(value); - return result; -} - - OFCondition DRTDoseIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -3982,6 +4228,15 @@ OFCondition DRTDoseIOD::setLargestImagePixelValue(const Uint16 value, const unsi } +OFCondition DRTDoseIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4036,6 +4291,33 @@ OFCondition DRTDoseIOD::setManufacturerModelName(const OFString &value, const OF } +OFCondition DRTDoseIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4201,6 +4483,15 @@ OFCondition DRTDoseIOD::setPatientAge(const OFString &value, const OFBool check) } +OFCondition DRTDoseIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -4210,6 +4501,15 @@ OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool } +OFCondition DRTDoseIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -4219,6 +4519,15 @@ OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool } +OFCondition DRTDoseIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4237,6 +4546,15 @@ OFCondition DRTDoseIOD::setPatientComments(const OFString &value, const OFBool c } +OFCondition DRTDoseIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4309,6 +4627,15 @@ OFCondition DRTDoseIOD::setPatientSpeciesDescription(const OFString &value, cons } +OFCondition DRTDoseIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -4450,6 +4777,12 @@ OFCondition DRTDoseIOD::setPositionReferenceIndicator(const OFString &value, con } +OFCondition DRTDoseIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTDoseIOD::setPresentationLUTShape(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4750,6 +5083,15 @@ OFCondition DRTDoseIOD::setSmallestImagePixelValue(const Uint16 value, const uns } +OFCondition DRTDoseIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -4804,6 +5146,33 @@ OFCondition DRTDoseIOD::setStereoPairsPresent(const OFString &value, const OFBoo } +OFCondition DRTDoseIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setStructureSetDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtdrs.cc b/dcmrt/libsrc/drtdrs.cc index 4cc00b71..f2788da2 100644 --- a/dcmrt/libsrc/drtdrs.cc +++ b/dcmrt/libsrc/drtdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -888,7 +888,7 @@ OFBool DRTDoseReferenceSequence::isValid() const } -unsigned long DRTDoseReferenceSequence::getNumberOfItems() const +size_t DRTDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -918,12 +918,12 @@ OFCondition DRTDoseReferenceSequence::gotoNextItem() } -OFCondition DRTDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -938,12 +938,12 @@ OFCondition DRTDoseReferenceSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -958,7 +958,7 @@ OFCondition DRTDoseReferenceSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -994,7 +994,7 @@ const DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::getCurrentItem() } -OFCondition DRTDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1004,7 +1004,7 @@ OFCondition DRTDoseReferenceSequence::getItem(const unsigned long num, Item *&it } -DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::getItem(const unsigned long num) +DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1014,7 +1014,7 @@ DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::getItem(const unsigned } -const DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::getItem(const unsigned long num) const +const DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1024,13 +1024,13 @@ const DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::getItem(const un } -DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::operator[](const unsigned long num) +DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::operator[](const unsigned long num) const +const DRTDoseReferenceSequence::Item &DRTDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -1053,7 +1053,7 @@ OFCondition DRTDoseReferenceSequence::addItem(Item *&item) } -OFCondition DRTDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1076,7 +1076,7 @@ OFCondition DRTDoseReferenceSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtds.cc b/dcmrt/libsrc/drtds.cc index 69b00cf1..42392afb 100644 --- a/dcmrt/libsrc/drtds.cc +++ b/dcmrt/libsrc/drtds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -44,6 +44,7 @@ DRTDeviceSequence::Item::Item(const OFBool emptyDefaultItem) Manufacturer(DCM_Manufacturer), ManufacturerModelName(DCM_ManufacturerModelName), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -75,6 +76,7 @@ DRTDeviceSequence::Item::Item(const Item ©) Manufacturer(copy.Manufacturer), ManufacturerModelName(copy.ManufacturerModelName), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -114,6 +116,7 @@ DRTDeviceSequence::Item &DRTDeviceSequence::Item::operator=(const Item ©) Manufacturer = copy.Manufacturer; ManufacturerModelName = copy.ManufacturerModelName; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -137,6 +140,7 @@ void DRTDeviceSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -168,6 +172,7 @@ OFBool DRTDeviceSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -209,6 +214,7 @@ OFCondition DRTDeviceSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeviceSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeviceSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeviceSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeviceSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeviceSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeviceSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeviceSequence"); @@ -246,6 +252,7 @@ OFCondition DRTDeviceSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeviceSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeviceSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeviceSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeviceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeviceSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeviceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeviceSequence"); @@ -499,6 +506,15 @@ OFCondition DRTDeviceSequence::Item::getMappingResource(OFString &value, const s } +OFCondition DRTDeviceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDeviceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -803,6 +819,19 @@ OFCondition DRTDeviceSequence::Item::setMappingResource(const OFString &value, c } +OFCondition DRTDeviceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDeviceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -932,7 +961,7 @@ OFBool DRTDeviceSequence::isValid() const } -unsigned long DRTDeviceSequence::getNumberOfItems() const +size_t DRTDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -962,12 +991,12 @@ OFCondition DRTDeviceSequence::gotoNextItem() } -OFCondition DRTDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -982,12 +1011,12 @@ OFCondition DRTDeviceSequence::gotoItem(const unsigned long num, OFListIterator( } -OFCondition DRTDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1002,7 +1031,7 @@ OFCondition DRTDeviceSequence::gotoItem(const unsigned long num, OFListConstIter } -OFCondition DRTDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1038,7 +1067,7 @@ const DRTDeviceSequence::Item &DRTDeviceSequence::getCurrentItem() const } -OFCondition DRTDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1048,7 +1077,7 @@ OFCondition DRTDeviceSequence::getItem(const unsigned long num, Item *&item) } -DRTDeviceSequence::Item &DRTDeviceSequence::getItem(const unsigned long num) +DRTDeviceSequence::Item &DRTDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1058,7 +1087,7 @@ DRTDeviceSequence::Item &DRTDeviceSequence::getItem(const unsigned long num) } -const DRTDeviceSequence::Item &DRTDeviceSequence::getItem(const unsigned long num) const +const DRTDeviceSequence::Item &DRTDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1068,13 +1097,13 @@ const DRTDeviceSequence::Item &DRTDeviceSequence::getItem(const unsigned long nu } -DRTDeviceSequence::Item &DRTDeviceSequence::operator[](const unsigned long num) +DRTDeviceSequence::Item &DRTDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTDeviceSequence::Item &DRTDeviceSequence::operator[](const unsigned long num) const +const DRTDeviceSequence::Item &DRTDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -1097,7 +1126,7 @@ OFCondition DRTDeviceSequence::addItem(Item *&item) } -OFCondition DRTDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1120,7 +1149,7 @@ OFCondition DRTDeviceSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdspcs.cc b/dcmrt/libsrc/drtdspcs.cc index a03182d3..b48baf6c 100644 --- a/dcmrt/libsrc/drtdspcs.cc +++ b/dcmrt/libsrc/drtdspcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDigitalSignaturePurposeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const OFBool emptyDefaultItem EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequ EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTDigitalSignaturePurposeCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTDigitalSignaturePurposeCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DigitalSignaturePurposeCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DigitalSignaturePurposeCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResource(OFS } +OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResource(con } +OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTDigitalSignaturePurposeCodeSequence::isValid() const } -unsigned long DRTDigitalSignaturePurposeCodeSequence::getNumberOfItems() const +size_t DRTDigitalSignaturePurposeCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoNextItem() } -OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const unsigned long } -OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const unsigned long } -OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTDigitalSignaturePurposeCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCo } -OFCondition DRTDigitalSignaturePurposeCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDigitalSignaturePurposeCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::getItem(const unsigned long } -DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::getItem(const unsigned long num) +DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequ } -const DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::getItem(const unsigned long num) const +const DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCo } -DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::operator[](const unsigned long num) +DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::operator[](const unsigned long num) const +const DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::addItem(Item *&item) } -OFCondition DRTDigitalSignaturePurposeCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDigitalSignaturePurposeCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::insertItem(const unsigned lo } -OFCondition DRTDigitalSignaturePurposeCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTDigitalSignaturePurposeCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdss.cc b/dcmrt/libsrc/drtdss.cc index e9e173ae..9e67c62d 100644 --- a/dcmrt/libsrc/drtdss.cc +++ b/dcmrt/libsrc/drtdss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDigitalSignaturesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -446,7 +446,7 @@ OFBool DRTDigitalSignaturesSequence::isValid() const } -unsigned long DRTDigitalSignaturesSequence::getNumberOfItems() const +size_t DRTDigitalSignaturesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -476,12 +476,12 @@ OFCondition DRTDigitalSignaturesSequence::gotoNextItem() } -OFCondition DRTDigitalSignaturesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDigitalSignaturesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -496,12 +496,12 @@ OFCondition DRTDigitalSignaturesSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTDigitalSignaturesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDigitalSignaturesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -516,7 +516,7 @@ OFCondition DRTDigitalSignaturesSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTDigitalSignaturesSequence::gotoItem(const unsigned long num) +OFCondition DRTDigitalSignaturesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -552,7 +552,7 @@ const DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::getCurre } -OFCondition DRTDigitalSignaturesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDigitalSignaturesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -562,7 +562,7 @@ OFCondition DRTDigitalSignaturesSequence::getItem(const unsigned long num, Item } -DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::getItem(const unsigned long num) +DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -572,7 +572,7 @@ DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::getItem(const } -const DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::getItem(const unsigned long num) const +const DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -582,13 +582,13 @@ const DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::getItem( } -DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::operator[](const unsigned long num) +DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::operator[](const size_t num) { return getItem(num); } -const DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::operator[](const unsigned long num) const +const DRTDigitalSignaturesSequence::Item &DRTDigitalSignaturesSequence::operator[](const size_t num) const { return getItem(num); } @@ -611,7 +611,7 @@ OFCondition DRTDigitalSignaturesSequence::addItem(Item *&item) } -OFCondition DRTDigitalSignaturesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDigitalSignaturesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -634,7 +634,7 @@ OFCondition DRTDigitalSignaturesSequence::insertItem(const unsigned long pos, It } -OFCondition DRTDigitalSignaturesSequence::removeItem(const unsigned long pos) +OFCondition DRTDigitalSignaturesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdvhs.cc b/dcmrt/libsrc/drtdvhs.cc index 328a7650..933ef2d9 100644 --- a/dcmrt/libsrc/drtdvhs.cc +++ b/dcmrt/libsrc/drtdvhs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDVHSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -553,7 +553,7 @@ OFBool DRTDVHSequence::isValid() const } -unsigned long DRTDVHSequence::getNumberOfItems() const +size_t DRTDVHSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -583,12 +583,12 @@ OFCondition DRTDVHSequence::gotoNextItem() } -OFCondition DRTDVHSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDVHSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -603,12 +603,12 @@ OFCondition DRTDVHSequence::gotoItem(const unsigned long num, OFListIterator(Ite } -OFCondition DRTDVHSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDVHSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -623,7 +623,7 @@ OFCondition DRTDVHSequence::gotoItem(const unsigned long num, OFListConstIterato } -OFCondition DRTDVHSequence::gotoItem(const unsigned long num) +OFCondition DRTDVHSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -659,7 +659,7 @@ const DRTDVHSequence::Item &DRTDVHSequence::getCurrentItem() const } -OFCondition DRTDVHSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDVHSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -669,7 +669,7 @@ OFCondition DRTDVHSequence::getItem(const unsigned long num, Item *&item) } -DRTDVHSequence::Item &DRTDVHSequence::getItem(const unsigned long num) +DRTDVHSequence::Item &DRTDVHSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -679,7 +679,7 @@ DRTDVHSequence::Item &DRTDVHSequence::getItem(const unsigned long num) } -const DRTDVHSequence::Item &DRTDVHSequence::getItem(const unsigned long num) const +const DRTDVHSequence::Item &DRTDVHSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -689,13 +689,13 @@ const DRTDVHSequence::Item &DRTDVHSequence::getItem(const unsigned long num) con } -DRTDVHSequence::Item &DRTDVHSequence::operator[](const unsigned long num) +DRTDVHSequence::Item &DRTDVHSequence::operator[](const size_t num) { return getItem(num); } -const DRTDVHSequence::Item &DRTDVHSequence::operator[](const unsigned long num) const +const DRTDVHSequence::Item &DRTDVHSequence::operator[](const size_t num) const { return getItem(num); } @@ -718,7 +718,7 @@ OFCondition DRTDVHSequence::addItem(Item *&item) } -OFCondition DRTDVHSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDVHSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -741,7 +741,7 @@ OFCondition DRTDVHSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTDVHSequence::removeItem(const unsigned long pos) +OFCondition DRTDVHSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtdvrrs.cc b/dcmrt/libsrc/drtdvrrs.cc index eec70c23..933f6a1c 100644 --- a/dcmrt/libsrc/drtdvrrs.cc +++ b/dcmrt/libsrc/drtdvrrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDVHReferencedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTDVHReferencedROISequence::isValid() const } -unsigned long DRTDVHReferencedROISequence::getNumberOfItems() const +size_t DRTDVHReferencedROISequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTDVHReferencedROISequence::gotoNextItem() } -OFCondition DRTDVHReferencedROISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTDVHReferencedROISequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTDVHReferencedROISequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTDVHReferencedROISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTDVHReferencedROISequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTDVHReferencedROISequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTDVHReferencedROISequence::gotoItem(const unsigned long num) +OFCondition DRTDVHReferencedROISequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::getCurrent } -OFCondition DRTDVHReferencedROISequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTDVHReferencedROISequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTDVHReferencedROISequence::getItem(const unsigned long num, Item * } -DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::getItem(const unsigned long num) +DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::getItem(const un } -const DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::getItem(const unsigned long num) const +const DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::getItem(co } -DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::operator[](const unsigned long num) +DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::operator[](const size_t num) { return getItem(num); } -const DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::operator[](const unsigned long num) const +const DRTDVHReferencedROISequence::Item &DRTDVHReferencedROISequence::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTDVHReferencedROISequence::addItem(Item *&item) } -OFCondition DRTDVHReferencedROISequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTDVHReferencedROISequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTDVHReferencedROISequence::insertItem(const unsigned long pos, Ite } -OFCondition DRTDVHReferencedROISequence::removeItem(const unsigned long pos) +OFCondition DRTDVHReferencedROISequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drteas.cc b/dcmrt/libsrc/drteas.cc index 53d8069d..f21e814f 100644 --- a/dcmrt/libsrc/drteas.cc +++ b/dcmrt/libsrc/drteas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTEncryptedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -257,7 +257,7 @@ OFBool DRTEncryptedAttributesSequence::isValid() const } -unsigned long DRTEncryptedAttributesSequence::getNumberOfItems() const +size_t DRTEncryptedAttributesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -287,12 +287,12 @@ OFCondition DRTEncryptedAttributesSequence::gotoNextItem() } -OFCondition DRTEncryptedAttributesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTEncryptedAttributesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -307,12 +307,12 @@ OFCondition DRTEncryptedAttributesSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTEncryptedAttributesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTEncryptedAttributesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -327,7 +327,7 @@ OFCondition DRTEncryptedAttributesSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTEncryptedAttributesSequence::gotoItem(const unsigned long num) +OFCondition DRTEncryptedAttributesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -363,7 +363,7 @@ const DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::getC } -OFCondition DRTEncryptedAttributesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTEncryptedAttributesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -373,7 +373,7 @@ OFCondition DRTEncryptedAttributesSequence::getItem(const unsigned long num, Ite } -DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::getItem(const unsigned long num) +DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -383,7 +383,7 @@ DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::getItem(co } -const DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::getItem(const unsigned long num) const +const DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -393,13 +393,13 @@ const DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::getI } -DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::operator[](const unsigned long num) +DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::operator[](const size_t num) { return getItem(num); } -const DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::operator[](const unsigned long num) const +const DRTEncryptedAttributesSequence::Item &DRTEncryptedAttributesSequence::operator[](const size_t num) const { return getItem(num); } @@ -422,7 +422,7 @@ OFCondition DRTEncryptedAttributesSequence::addItem(Item *&item) } -OFCondition DRTEncryptedAttributesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTEncryptedAttributesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -445,7 +445,7 @@ OFCondition DRTEncryptedAttributesSequence::insertItem(const unsigned long pos, } -OFCondition DRTEncryptedAttributesSequence::removeItem(const unsigned long pos) +OFCondition DRTEncryptedAttributesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtecs.cc b/dcmrt/libsrc/drtecs.cc index 4f07d4c5..8a509db1 100644 --- a/dcmrt/libsrc/drtecs.cc +++ b/dcmrt/libsrc/drtecs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTEquivalentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -25,7 +25,16 @@ DRTEquivalentCodeSequence::Item::Item(const OFBool emptyDefaultItem) CodeValue(DCM_CodeValue), CodingSchemeDesignator(DCM_CodingSchemeDesignator), CodingSchemeVersion(DCM_CodingSchemeVersion), + ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), + ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), LongCodeValue(DCM_LongCodeValue), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { } @@ -37,7 +46,16 @@ DRTEquivalentCodeSequence::Item::Item(const Item ©) CodeValue(copy.CodeValue), CodingSchemeDesignator(copy.CodingSchemeDesignator), CodingSchemeVersion(copy.CodingSchemeVersion), + ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), + ContextGroupLocalVersion(copy.ContextGroupLocalVersion), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), LongCodeValue(copy.LongCodeValue), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { } @@ -57,7 +75,16 @@ DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::Item::operator=(cons CodeValue = copy.CodeValue; CodingSchemeDesignator = copy.CodingSchemeDesignator; CodingSchemeVersion = copy.CodingSchemeVersion; + ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; + ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; + ContextGroupLocalVersion = copy.ContextGroupLocalVersion; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; LongCodeValue = copy.LongCodeValue; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } return *this; @@ -75,6 +102,15 @@ void DRTEquivalentCodeSequence::Item::clear() CodeMeaning.clear(); LongCodeValue.clear(); URNCodeValue.clear(); + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + ContextGroupVersion.clear(); + ContextGroupExtensionFlag.clear(); + ContextGroupLocalVersion.clear(); + ContextGroupExtensionCreatorUID.clear(); } } @@ -86,7 +122,16 @@ OFBool DRTEquivalentCodeSequence::Item::isEmpty() CodingSchemeVersion.isEmpty() && CodeMeaning.isEmpty() && LongCodeValue.isEmpty() && - URNCodeValue.isEmpty(); + URNCodeValue.isEmpty() && + ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && + ContextGroupVersion.isEmpty() && + ContextGroupExtensionFlag.isEmpty() && + ContextGroupLocalVersion.isEmpty() && + ContextGroupExtensionCreatorUID.isEmpty(); } @@ -109,6 +154,15 @@ OFCondition DRTEquivalentCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "EquivalentCodeSequence"); getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "EquivalentCodeSequence"); getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "EquivalentCodeSequence"); result = EC_Normal; } return result; @@ -127,6 +181,15 @@ OFCondition DRTEquivalentCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "EquivalentCodeSequence"); addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "EquivalentCodeSequence"); addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "EquivalentCodeSequence"); } return result; } @@ -168,6 +231,60 @@ OFCondition DRTEquivalentCodeSequence::Item::getCodingSchemeVersion(OFString &va } +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupLocalVersion, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -177,6 +294,33 @@ OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, c } +OFCondition DRTEquivalentCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + OFCondition DRTEquivalentCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -238,6 +382,84 @@ OFCondition DRTEquivalentCodeSequence::Item::setCodingSchemeVersion(const OFStri } +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionCreatorUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionFlag.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupLocalVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -251,6 +473,45 @@ OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &va } +OFCondition DRTEquivalentCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + OFCondition DRTEquivalentCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -367,7 +628,7 @@ OFBool DRTEquivalentCodeSequence::isValid() const } -unsigned long DRTEquivalentCodeSequence::getNumberOfItems() const +size_t DRTEquivalentCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -397,12 +658,12 @@ OFCondition DRTEquivalentCodeSequence::gotoNextItem() } -OFCondition DRTEquivalentCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTEquivalentCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -417,12 +678,12 @@ OFCondition DRTEquivalentCodeSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTEquivalentCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTEquivalentCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -437,7 +698,7 @@ OFCondition DRTEquivalentCodeSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTEquivalentCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTEquivalentCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -473,7 +734,7 @@ const DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::getCurrentItem } -OFCondition DRTEquivalentCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTEquivalentCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -483,7 +744,7 @@ OFCondition DRTEquivalentCodeSequence::getItem(const unsigned long num, Item *&i } -DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::getItem(const unsigned long num) +DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -493,7 +754,7 @@ DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::getItem(const unsign } -const DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::getItem(const unsigned long num) const +const DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -503,13 +764,13 @@ const DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::getItem(const } -DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::operator[](const unsigned long num) +DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::operator[](const unsigned long num) const +const DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -532,7 +793,7 @@ OFCondition DRTEquivalentCodeSequence::addItem(Item *&item) } -OFCondition DRTEquivalentCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTEquivalentCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -555,7 +816,7 @@ OFCondition DRTEquivalentCodeSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTEquivalentCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTEquivalentCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtes.cc b/dcmrt/libsrc/drtes.cc index 58d00279..5bcc618b 100644 --- a/dcmrt/libsrc/drtes.cc +++ b/dcmrt/libsrc/drtes.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTExposureSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -856,7 +856,7 @@ OFBool DRTExposureSequence::isValid() const } -unsigned long DRTExposureSequence::getNumberOfItems() const +size_t DRTExposureSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -886,12 +886,12 @@ OFCondition DRTExposureSequence::gotoNextItem() } -OFCondition DRTExposureSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTExposureSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -906,12 +906,12 @@ OFCondition DRTExposureSequence::gotoItem(const unsigned long num, OFListIterato } -OFCondition DRTExposureSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTExposureSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -926,7 +926,7 @@ OFCondition DRTExposureSequence::gotoItem(const unsigned long num, OFListConstIt } -OFCondition DRTExposureSequence::gotoItem(const unsigned long num) +OFCondition DRTExposureSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -962,7 +962,7 @@ const DRTExposureSequence::Item &DRTExposureSequence::getCurrentItem() const } -OFCondition DRTExposureSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTExposureSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -972,7 +972,7 @@ OFCondition DRTExposureSequence::getItem(const unsigned long num, Item *&item) } -DRTExposureSequence::Item &DRTExposureSequence::getItem(const unsigned long num) +DRTExposureSequence::Item &DRTExposureSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -982,7 +982,7 @@ DRTExposureSequence::Item &DRTExposureSequence::getItem(const unsigned long num) } -const DRTExposureSequence::Item &DRTExposureSequence::getItem(const unsigned long num) const +const DRTExposureSequence::Item &DRTExposureSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -992,13 +992,13 @@ const DRTExposureSequence::Item &DRTExposureSequence::getItem(const unsigned lon } -DRTExposureSequence::Item &DRTExposureSequence::operator[](const unsigned long num) +DRTExposureSequence::Item &DRTExposureSequence::operator[](const size_t num) { return getItem(num); } -const DRTExposureSequence::Item &DRTExposureSequence::operator[](const unsigned long num) const +const DRTExposureSequence::Item &DRTExposureSequence::operator[](const size_t num) const { return getItem(num); } @@ -1021,7 +1021,7 @@ OFCondition DRTExposureSequence::addItem(Item *&item) } -OFCondition DRTExposureSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTExposureSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1044,7 +1044,7 @@ OFCondition DRTExposureSequence::insertItem(const unsigned long pos, Item *&item } -OFCondition DRTExposureSequence::removeItem(const unsigned long pos) +OFCondition DRTExposureSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtfds.cc b/dcmrt/libsrc/drtfds.cc index 3a69a634..739b0dba 100644 --- a/dcmrt/libsrc/drtfds.cc +++ b/dcmrt/libsrc/drtfds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFixationDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -388,7 +388,7 @@ OFBool DRTFixationDeviceSequence::isValid() const } -unsigned long DRTFixationDeviceSequence::getNumberOfItems() const +size_t DRTFixationDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -418,12 +418,12 @@ OFCondition DRTFixationDeviceSequence::gotoNextItem() } -OFCondition DRTFixationDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTFixationDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -438,12 +438,12 @@ OFCondition DRTFixationDeviceSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTFixationDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTFixationDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -458,7 +458,7 @@ OFCondition DRTFixationDeviceSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTFixationDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTFixationDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -494,7 +494,7 @@ const DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::getCurrentItem } -OFCondition DRTFixationDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTFixationDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -504,7 +504,7 @@ OFCondition DRTFixationDeviceSequence::getItem(const unsigned long num, Item *&i } -DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::getItem(const unsigned long num) +DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -514,7 +514,7 @@ DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::getItem(const unsign } -const DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::getItem(const unsigned long num) const +const DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -524,13 +524,13 @@ const DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::getItem(const } -DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::operator[](const unsigned long num) +DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::operator[](const unsigned long num) const +const DRTFixationDeviceSequence::Item &DRTFixationDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -553,7 +553,7 @@ OFCondition DRTFixationDeviceSequence::addItem(Item *&item) } -OFCondition DRTFixationDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTFixationDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -576,7 +576,7 @@ OFCondition DRTFixationDeviceSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTFixationDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTFixationDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtfes.cc b/dcmrt/libsrc/drtfes.cc index add7207f..2bf715eb 100644 --- a/dcmrt/libsrc/drtfes.cc +++ b/dcmrt/libsrc/drtfes.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFrameExtractionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -297,7 +297,7 @@ OFBool DRTFrameExtractionSequence::isValid() const } -unsigned long DRTFrameExtractionSequence::getNumberOfItems() const +size_t DRTFrameExtractionSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -327,12 +327,12 @@ OFCondition DRTFrameExtractionSequence::gotoNextItem() } -OFCondition DRTFrameExtractionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTFrameExtractionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -347,12 +347,12 @@ OFCondition DRTFrameExtractionSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTFrameExtractionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTFrameExtractionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -367,7 +367,7 @@ OFCondition DRTFrameExtractionSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTFrameExtractionSequence::gotoItem(const unsigned long num) +OFCondition DRTFrameExtractionSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -403,7 +403,7 @@ const DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::getCurrentIt } -OFCondition DRTFrameExtractionSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTFrameExtractionSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -413,7 +413,7 @@ OFCondition DRTFrameExtractionSequence::getItem(const unsigned long num, Item *& } -DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::getItem(const unsigned long num) +DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -423,7 +423,7 @@ DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::getItem(const unsi } -const DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::getItem(const unsigned long num) const +const DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -433,13 +433,13 @@ const DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::getItem(cons } -DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::operator[](const unsigned long num) +DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::operator[](const size_t num) { return getItem(num); } -const DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::operator[](const unsigned long num) const +const DRTFrameExtractionSequence::Item &DRTFrameExtractionSequence::operator[](const size_t num) const { return getItem(num); } @@ -462,7 +462,7 @@ OFCondition DRTFrameExtractionSequence::addItem(Item *&item) } -OFCondition DRTFrameExtractionSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTFrameExtractionSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -485,7 +485,7 @@ OFCondition DRTFrameExtractionSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTFrameExtractionSequence::removeItem(const unsigned long pos) +OFCondition DRTFrameExtractionSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtfgs.cc b/dcmrt/libsrc/drtfgs.cc index c82bde54..5d5f35a3 100644 --- a/dcmrt/libsrc/drtfgs.cc +++ b/dcmrt/libsrc/drtfgs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -536,7 +536,7 @@ OFBool DRTFractionGroupSequence::isValid() const } -unsigned long DRTFractionGroupSequence::getNumberOfItems() const +size_t DRTFractionGroupSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -566,12 +566,12 @@ OFCondition DRTFractionGroupSequence::gotoNextItem() } -OFCondition DRTFractionGroupSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTFractionGroupSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -586,12 +586,12 @@ OFCondition DRTFractionGroupSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTFractionGroupSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTFractionGroupSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -606,7 +606,7 @@ OFCondition DRTFractionGroupSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTFractionGroupSequence::gotoItem(const unsigned long num) +OFCondition DRTFractionGroupSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -642,7 +642,7 @@ const DRTFractionGroupSequence::Item &DRTFractionGroupSequence::getCurrentItem() } -OFCondition DRTFractionGroupSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTFractionGroupSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -652,7 +652,7 @@ OFCondition DRTFractionGroupSequence::getItem(const unsigned long num, Item *&it } -DRTFractionGroupSequence::Item &DRTFractionGroupSequence::getItem(const unsigned long num) +DRTFractionGroupSequence::Item &DRTFractionGroupSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -662,7 +662,7 @@ DRTFractionGroupSequence::Item &DRTFractionGroupSequence::getItem(const unsigned } -const DRTFractionGroupSequence::Item &DRTFractionGroupSequence::getItem(const unsigned long num) const +const DRTFractionGroupSequence::Item &DRTFractionGroupSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -672,13 +672,13 @@ const DRTFractionGroupSequence::Item &DRTFractionGroupSequence::getItem(const un } -DRTFractionGroupSequence::Item &DRTFractionGroupSequence::operator[](const unsigned long num) +DRTFractionGroupSequence::Item &DRTFractionGroupSequence::operator[](const size_t num) { return getItem(num); } -const DRTFractionGroupSequence::Item &DRTFractionGroupSequence::operator[](const unsigned long num) const +const DRTFractionGroupSequence::Item &DRTFractionGroupSequence::operator[](const size_t num) const { return getItem(num); } @@ -701,7 +701,7 @@ OFCondition DRTFractionGroupSequence::addItem(Item *&item) } -OFCondition DRTFractionGroupSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTFractionGroupSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -724,7 +724,7 @@ OFCondition DRTFractionGroupSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTFractionGroupSequence::removeItem(const unsigned long pos) +OFCondition DRTFractionGroupSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtfgss.cc b/dcmrt/libsrc/drtfgss.cc index 6bfe62a7..47355653 100644 --- a/dcmrt/libsrc/drtfgss.cc +++ b/dcmrt/libsrc/drtfgss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFractionGroupSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -343,7 +343,7 @@ OFBool DRTFractionGroupSummarySequence::isValid() const } -unsigned long DRTFractionGroupSummarySequence::getNumberOfItems() const +size_t DRTFractionGroupSummarySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -373,12 +373,12 @@ OFCondition DRTFractionGroupSummarySequence::gotoNextItem() } -OFCondition DRTFractionGroupSummarySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTFractionGroupSummarySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -393,12 +393,12 @@ OFCondition DRTFractionGroupSummarySequence::gotoItem(const unsigned long num, O } -OFCondition DRTFractionGroupSummarySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTFractionGroupSummarySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -413,7 +413,7 @@ OFCondition DRTFractionGroupSummarySequence::gotoItem(const unsigned long num, O } -OFCondition DRTFractionGroupSummarySequence::gotoItem(const unsigned long num) +OFCondition DRTFractionGroupSummarySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -449,7 +449,7 @@ const DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::ge } -OFCondition DRTFractionGroupSummarySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTFractionGroupSummarySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -459,7 +459,7 @@ OFCondition DRTFractionGroupSummarySequence::getItem(const unsigned long num, It } -DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::getItem(const unsigned long num) +DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -469,7 +469,7 @@ DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::getItem( } -const DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::getItem(const unsigned long num) const +const DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -479,13 +479,13 @@ const DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::ge } -DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::operator[](const unsigned long num) +DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::operator[](const size_t num) { return getItem(num); } -const DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::operator[](const unsigned long num) const +const DRTFractionGroupSummarySequence::Item &DRTFractionGroupSummarySequence::operator[](const size_t num) const { return getItem(num); } @@ -508,7 +508,7 @@ OFCondition DRTFractionGroupSummarySequence::addItem(Item *&item) } -OFCondition DRTFractionGroupSummarySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTFractionGroupSummarySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -531,7 +531,7 @@ OFCondition DRTFractionGroupSummarySequence::insertItem(const unsigned long pos, } -OFCondition DRTFractionGroupSummarySequence::removeItem(const unsigned long pos) +OFCondition DRTFractionGroupSummarySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtfms.cc b/dcmrt/libsrc/drtfms.cc index a0e73bb8..56b3660d 100644 --- a/dcmrt/libsrc/drtfms.cc +++ b/dcmrt/libsrc/drtfms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFluenceMapSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTFluenceMapSequence::isValid() const } -unsigned long DRTFluenceMapSequence::getNumberOfItems() const +size_t DRTFluenceMapSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTFluenceMapSequence::gotoNextItem() } -OFCondition DRTFluenceMapSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTFluenceMapSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTFluenceMapSequence::gotoItem(const unsigned long num, OFListItera } -OFCondition DRTFluenceMapSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTFluenceMapSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTFluenceMapSequence::gotoItem(const unsigned long num, OFListConst } -OFCondition DRTFluenceMapSequence::gotoItem(const unsigned long num) +OFCondition DRTFluenceMapSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTFluenceMapSequence::Item &DRTFluenceMapSequence::getCurrentItem() const } -OFCondition DRTFluenceMapSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTFluenceMapSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTFluenceMapSequence::getItem(const unsigned long num, Item *&item) } -DRTFluenceMapSequence::Item &DRTFluenceMapSequence::getItem(const unsigned long num) +DRTFluenceMapSequence::Item &DRTFluenceMapSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTFluenceMapSequence::Item &DRTFluenceMapSequence::getItem(const unsigned long } -const DRTFluenceMapSequence::Item &DRTFluenceMapSequence::getItem(const unsigned long num) const +const DRTFluenceMapSequence::Item &DRTFluenceMapSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTFluenceMapSequence::Item &DRTFluenceMapSequence::getItem(const unsigned } -DRTFluenceMapSequence::Item &DRTFluenceMapSequence::operator[](const unsigned long num) +DRTFluenceMapSequence::Item &DRTFluenceMapSequence::operator[](const size_t num) { return getItem(num); } -const DRTFluenceMapSequence::Item &DRTFluenceMapSequence::operator[](const unsigned long num) const +const DRTFluenceMapSequence::Item &DRTFluenceMapSequence::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTFluenceMapSequence::addItem(Item *&item) } -OFCondition DRTFluenceMapSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTFluenceMapSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTFluenceMapSequence::insertItem(const unsigned long pos, Item *&it } -OFCondition DRTFluenceMapSequence::removeItem(const unsigned long pos) +OFCondition DRTFluenceMapSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtfsss.cc b/dcmrt/libsrc/drtfsss.cc index 75400c7f..79f9d82f 100644 --- a/dcmrt/libsrc/drtfsss.cc +++ b/dcmrt/libsrc/drtfsss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFractionStatusSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -318,7 +318,7 @@ OFBool DRTFractionStatusSummarySequence::isValid() const } -unsigned long DRTFractionStatusSummarySequence::getNumberOfItems() const +size_t DRTFractionStatusSummarySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -348,12 +348,12 @@ OFCondition DRTFractionStatusSummarySequence::gotoNextItem() } -OFCondition DRTFractionStatusSummarySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTFractionStatusSummarySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -368,12 +368,12 @@ OFCondition DRTFractionStatusSummarySequence::gotoItem(const unsigned long num, } -OFCondition DRTFractionStatusSummarySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTFractionStatusSummarySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -388,7 +388,7 @@ OFCondition DRTFractionStatusSummarySequence::gotoItem(const unsigned long num, } -OFCondition DRTFractionStatusSummarySequence::gotoItem(const unsigned long num) +OFCondition DRTFractionStatusSummarySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -424,7 +424,7 @@ const DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence:: } -OFCondition DRTFractionStatusSummarySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTFractionStatusSummarySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -434,7 +434,7 @@ OFCondition DRTFractionStatusSummarySequence::getItem(const unsigned long num, I } -DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::getItem(const unsigned long num) +DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -444,7 +444,7 @@ DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::getIte } -const DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::getItem(const unsigned long num) const +const DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -454,13 +454,13 @@ const DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence:: } -DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::operator[](const unsigned long num) +DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::operator[](const size_t num) { return getItem(num); } -const DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::operator[](const unsigned long num) const +const DRTFractionStatusSummarySequence::Item &DRTFractionStatusSummarySequence::operator[](const size_t num) const { return getItem(num); } @@ -483,7 +483,7 @@ OFCondition DRTFractionStatusSummarySequence::addItem(Item *&item) } -OFCondition DRTFractionStatusSummarySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTFractionStatusSummarySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -506,7 +506,7 @@ OFCondition DRTFractionStatusSummarySequence::insertItem(const unsigned long pos } -OFCondition DRTFractionStatusSummarySequence::removeItem(const unsigned long pos) +OFCondition DRTFractionStatusSummarySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtgas.cc b/dcmrt/libsrc/drtgas.cc index 613c9f25..e54dbeba 100644 --- a/dcmrt/libsrc/drtgas.cc +++ b/dcmrt/libsrc/drtgas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTGeneralAccessorySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -372,7 +372,7 @@ OFBool DRTGeneralAccessorySequence::isValid() const } -unsigned long DRTGeneralAccessorySequence::getNumberOfItems() const +size_t DRTGeneralAccessorySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -402,12 +402,12 @@ OFCondition DRTGeneralAccessorySequence::gotoNextItem() } -OFCondition DRTGeneralAccessorySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTGeneralAccessorySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -422,12 +422,12 @@ OFCondition DRTGeneralAccessorySequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTGeneralAccessorySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTGeneralAccessorySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -442,7 +442,7 @@ OFCondition DRTGeneralAccessorySequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTGeneralAccessorySequence::gotoItem(const unsigned long num) +OFCondition DRTGeneralAccessorySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -478,7 +478,7 @@ const DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::getCurrent } -OFCondition DRTGeneralAccessorySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTGeneralAccessorySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -488,7 +488,7 @@ OFCondition DRTGeneralAccessorySequence::getItem(const unsigned long num, Item * } -DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::getItem(const unsigned long num) +DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -498,7 +498,7 @@ DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::getItem(const un } -const DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::getItem(const unsigned long num) const +const DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -508,13 +508,13 @@ const DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::getItem(co } -DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::operator[](const unsigned long num) +DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::operator[](const size_t num) { return getItem(num); } -const DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::operator[](const unsigned long num) const +const DRTGeneralAccessorySequence::Item &DRTGeneralAccessorySequence::operator[](const size_t num) const { return getItem(num); } @@ -537,7 +537,7 @@ OFCondition DRTGeneralAccessorySequence::addItem(Item *&item) } -OFCondition DRTGeneralAccessorySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTGeneralAccessorySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -560,7 +560,7 @@ OFCondition DRTGeneralAccessorySequence::insertItem(const unsigned long pos, Ite } -OFCondition DRTGeneralAccessorySequence::removeItem(const unsigned long pos) +OFCondition DRTGeneralAccessorySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtgpis.cc b/dcmrt/libsrc/drtgpis.cc new file mode 100644 index 00000000..dd7164df --- /dev/null +++ b/dcmrt/libsrc/drtgpis.cc @@ -0,0 +1,634 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTGroupOfPatientsIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtgpis.h" + + +// --- item class --- + +DRTGroupOfPatientsIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + IssuerOfPatientID(DCM_IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/), + PatientID(DCM_PatientID), + PatientPosition(DCM_PatientPosition), + SubjectRelativePositionInImage(DCM_SubjectRelativePositionInImage) +{ +} + + +DRTGroupOfPatientsIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + IssuerOfPatientID(copy.IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), + PatientID(copy.PatientID), + PatientPosition(copy.PatientPosition), + SubjectRelativePositionInImage(copy.SubjectRelativePositionInImage) +{ +} + + +DRTGroupOfPatientsIdentificationSequence::Item::~Item() +{ +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + IssuerOfPatientID = copy.IssuerOfPatientID; + IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; + PatientID = copy.PatientID; + PatientPosition = copy.PatientPosition; + SubjectRelativePositionInImage = copy.SubjectRelativePositionInImage; + } + return *this; +} + + +void DRTGroupOfPatientsIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + PatientID.clear(); + IssuerOfPatientID.clear(); + IssuerOfPatientIDQualifiersSequence.clear(); + SubjectRelativePositionInImage.clear(); + PatientPosition.clear(); + } +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::Item::isEmpty() +{ + return PatientID.isEmpty() && + IssuerOfPatientID.isEmpty() && + IssuerOfPatientIDQualifiersSequence.isEmpty() && + SubjectRelativePositionInImage.isEmpty() && + PatientPosition.isEmpty(); +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, PatientID, "1", "1", "GroupOfPatientsIdentificationSequence"); + getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "GroupOfPatientsIdentificationSequence"); + IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "GroupOfPatientsIdentificationSequence"); + getAndCheckElementFromDataset(item, SubjectRelativePositionInImage, "3", "3", "GroupOfPatientsIdentificationSequence"); + getAndCheckElementFromDataset(item, PatientPosition, "1", "3", "GroupOfPatientsIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "GroupOfPatientsIdentificationSequence"); + addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "GroupOfPatientsIdentificationSequence"); + if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "GroupOfPatientsIdentificationSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(SubjectRelativePositionInImage), "3", "3", "GroupOfPatientsIdentificationSequence"); + addElementToDataset(result, item, new DcmCodeString(PatientPosition), "1", "3", "GroupOfPatientsIdentificationSequence"); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(IssuerOfPatientID, value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PatientID, value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientPosition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PatientPosition, value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedShort &, SubjectRelativePositionInImage).getUint16(value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = IssuerOfPatientID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientPosition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientPosition.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return SubjectRelativePositionInImage.putUint16(value, pos); +} + + +// --- sequence class --- + +DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTGroupOfPatientsIdentificationSequence &DRTGroupOfPatientsIdentificationSequence::operator=(const DRTGroupOfPatientsIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTGroupOfPatientsIdentificationSequence::~DRTGroupOfPatientsIdentificationSequence() +{ + clear(); +} + + +void DRTGroupOfPatientsIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTGroupOfPatientsIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_GroupOfPatientsIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_GroupOfPatientsIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_GroupOfPatientsIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drthsdrs.cc b/dcmrt/libsrc/drthsdrs.cc index 129979a7..1c473696 100644 --- a/dcmrt/libsrc/drthsdrs.cc +++ b/dcmrt/libsrc/drthsdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTHL7StructuredDocumentReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -309,7 +309,7 @@ OFBool DRTHL7StructuredDocumentReferenceSequence::isValid() const } -unsigned long DRTHL7StructuredDocumentReferenceSequence::getNumberOfItems() const +size_t DRTHL7StructuredDocumentReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -339,12 +339,12 @@ OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoNextItem() } -OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,12 +359,12 @@ OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const unsigned l } -OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -379,7 +379,7 @@ OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const unsigned l } -OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTHL7StructuredDocumentReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -415,7 +415,7 @@ const DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentR } -OFCondition DRTHL7StructuredDocumentReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTHL7StructuredDocumentReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -425,7 +425,7 @@ OFCondition DRTHL7StructuredDocumentReferenceSequence::getItem(const unsigned lo } -DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::getItem(const unsigned long num) +DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -435,7 +435,7 @@ DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferen } -const DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::getItem(const unsigned long num) const +const DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -445,13 +445,13 @@ const DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentR } -DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::operator[](const unsigned long num) +DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::operator[](const unsigned long num) const +const DRTHL7StructuredDocumentReferenceSequence::Item &DRTHL7StructuredDocumentReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -474,7 +474,7 @@ OFCondition DRTHL7StructuredDocumentReferenceSequence::addItem(Item *&item) } -OFCondition DRTHL7StructuredDocumentReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTHL7StructuredDocumentReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -497,7 +497,7 @@ OFCondition DRTHL7StructuredDocumentReferenceSequence::insertItem(const unsigned } -OFCondition DRTHL7StructuredDocumentReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTHL7StructuredDocumentReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtiais.cc b/dcmrt/libsrc/drtiais.cc index c206dae8..f5b2a1bb 100644 --- a/dcmrt/libsrc/drtiais.cc +++ b/dcmrt/libsrc/drtiais.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfAdmissionIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -280,7 +280,7 @@ OFBool DRTIssuerOfAdmissionIDSequence::isValid() const } -unsigned long DRTIssuerOfAdmissionIDSequence::getNumberOfItems() const +size_t DRTIssuerOfAdmissionIDSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -310,12 +310,12 @@ OFCondition DRTIssuerOfAdmissionIDSequence::gotoNextItem() } -OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,12 +330,12 @@ OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -350,7 +350,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num) +OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -386,7 +386,7 @@ const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getC } -OFCondition DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIssuerOfAdmissionIDSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -396,7 +396,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num, Ite } -DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num) +DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -406,7 +406,7 @@ DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(co } -const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num) const +const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -416,13 +416,13 @@ const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getI } -DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::operator[](const unsigned long num) +DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::operator[](const size_t num) { return getItem(num); } -const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::operator[](const unsigned long num) const +const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::operator[](const size_t num) const { return getItem(num); } @@ -445,7 +445,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::addItem(Item *&item) } -OFCondition DRTIssuerOfAdmissionIDSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIssuerOfAdmissionIDSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -468,7 +468,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::insertItem(const unsigned long pos, } -OFCondition DRTIssuerOfAdmissionIDSequence::removeItem(const unsigned long pos) +OFCondition DRTIssuerOfAdmissionIDSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtians.cc b/dcmrt/libsrc/drtians.cc index 6e0bb83a..6cdc5453 100644 --- a/dcmrt/libsrc/drtians.cc +++ b/dcmrt/libsrc/drtians.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfAccessionNumberSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -280,7 +280,7 @@ OFBool DRTIssuerOfAccessionNumberSequence::isValid() const } -unsigned long DRTIssuerOfAccessionNumberSequence::getNumberOfItems() const +size_t DRTIssuerOfAccessionNumberSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -310,12 +310,12 @@ OFCondition DRTIssuerOfAccessionNumberSequence::gotoNextItem() } -OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,12 +330,12 @@ OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const unsigned long num } -OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -350,7 +350,7 @@ OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const unsigned long num } -OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const unsigned long num) +OFCondition DRTIssuerOfAccessionNumberSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -386,7 +386,7 @@ const DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequen } -OFCondition DRTIssuerOfAccessionNumberSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIssuerOfAccessionNumberSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -396,7 +396,7 @@ OFCondition DRTIssuerOfAccessionNumberSequence::getItem(const unsigned long num, } -DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::getItem(const unsigned long num) +DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -406,7 +406,7 @@ DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::ge } -const DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::getItem(const unsigned long num) const +const DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -416,13 +416,13 @@ const DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequen } -DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::operator[](const unsigned long num) +DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::operator[](const size_t num) { return getItem(num); } -const DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::operator[](const unsigned long num) const +const DRTIssuerOfAccessionNumberSequence::Item &DRTIssuerOfAccessionNumberSequence::operator[](const size_t num) const { return getItem(num); } @@ -445,7 +445,7 @@ OFCondition DRTIssuerOfAccessionNumberSequence::addItem(Item *&item) } -OFCondition DRTIssuerOfAccessionNumberSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIssuerOfAccessionNumberSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -468,7 +468,7 @@ OFCondition DRTIssuerOfAccessionNumberSequence::insertItem(const unsigned long p } -OFCondition DRTIssuerOfAccessionNumberSequence::removeItem(const unsigned long pos) +OFCondition DRTIssuerOfAccessionNumberSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtiblds.cc b/dcmrt/libsrc/drtiblds.cc index 0cc4309d..02b432b5 100644 --- a/dcmrt/libsrc/drtiblds.cc +++ b/dcmrt/libsrc/drtiblds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBeamLimitingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -332,7 +332,7 @@ OFBool DRTIonBeamLimitingDeviceSequence::isValid() const } -unsigned long DRTIonBeamLimitingDeviceSequence::getNumberOfItems() const +size_t DRTIonBeamLimitingDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -362,12 +362,12 @@ OFCondition DRTIonBeamLimitingDeviceSequence::gotoNextItem() } -OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -382,12 +382,12 @@ OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const unsigned long num, } -OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -402,7 +402,7 @@ OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const unsigned long num, } -OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTIonBeamLimitingDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -438,7 +438,7 @@ const DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence:: } -OFCondition DRTIonBeamLimitingDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonBeamLimitingDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -448,7 +448,7 @@ OFCondition DRTIonBeamLimitingDeviceSequence::getItem(const unsigned long num, I } -DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::getItem(const unsigned long num) +DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -458,7 +458,7 @@ DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::getIte } -const DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::getItem(const unsigned long num) const +const DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -468,13 +468,13 @@ const DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence:: } -DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::operator[](const unsigned long num) +DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::operator[](const unsigned long num) const +const DRTIonBeamLimitingDeviceSequence::Item &DRTIonBeamLimitingDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -497,7 +497,7 @@ OFCondition DRTIonBeamLimitingDeviceSequence::addItem(Item *&item) } -OFCondition DRTIonBeamLimitingDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonBeamLimitingDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -520,7 +520,7 @@ OFCondition DRTIonBeamLimitingDeviceSequence::insertItem(const unsigned long pos } -OFCondition DRTIonBeamLimitingDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTIonBeamLimitingDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtibls.cc b/dcmrt/libsrc/drtibls.cc index a58a0380..260b4e50 100644 --- a/dcmrt/libsrc/drtibls.cc +++ b/dcmrt/libsrc/drtibls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -627,7 +627,7 @@ OFBool DRTIonBlockSequence::isValid() const } -unsigned long DRTIonBlockSequence::getNumberOfItems() const +size_t DRTIonBlockSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -657,12 +657,12 @@ OFCondition DRTIonBlockSequence::gotoNextItem() } -OFCondition DRTIonBlockSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonBlockSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -677,12 +677,12 @@ OFCondition DRTIonBlockSequence::gotoItem(const unsigned long num, OFListIterato } -OFCondition DRTIonBlockSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonBlockSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -697,7 +697,7 @@ OFCondition DRTIonBlockSequence::gotoItem(const unsigned long num, OFListConstIt } -OFCondition DRTIonBlockSequence::gotoItem(const unsigned long num) +OFCondition DRTIonBlockSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -733,7 +733,7 @@ const DRTIonBlockSequence::Item &DRTIonBlockSequence::getCurrentItem() const } -OFCondition DRTIonBlockSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonBlockSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -743,7 +743,7 @@ OFCondition DRTIonBlockSequence::getItem(const unsigned long num, Item *&item) } -DRTIonBlockSequence::Item &DRTIonBlockSequence::getItem(const unsigned long num) +DRTIonBlockSequence::Item &DRTIonBlockSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -753,7 +753,7 @@ DRTIonBlockSequence::Item &DRTIonBlockSequence::getItem(const unsigned long num) } -const DRTIonBlockSequence::Item &DRTIonBlockSequence::getItem(const unsigned long num) const +const DRTIonBlockSequence::Item &DRTIonBlockSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -763,13 +763,13 @@ const DRTIonBlockSequence::Item &DRTIonBlockSequence::getItem(const unsigned lon } -DRTIonBlockSequence::Item &DRTIonBlockSequence::operator[](const unsigned long num) +DRTIonBlockSequence::Item &DRTIonBlockSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonBlockSequence::Item &DRTIonBlockSequence::operator[](const unsigned long num) const +const DRTIonBlockSequence::Item &DRTIonBlockSequence::operator[](const size_t num) const { return getItem(num); } @@ -792,7 +792,7 @@ OFCondition DRTIonBlockSequence::addItem(Item *&item) } -OFCondition DRTIonBlockSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonBlockSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -815,7 +815,7 @@ OFCondition DRTIonBlockSequence::insertItem(const unsigned long pos, Item *&item } -OFCondition DRTIonBlockSequence::removeItem(const unsigned long pos) +OFCondition DRTIonBlockSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtibs.cc b/dcmrt/libsrc/drtibs.cc index 88cffe19..69779fa1 100644 --- a/dcmrt/libsrc/drtibs.cc +++ b/dcmrt/libsrc/drtibs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -26,8 +26,10 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem) BeamName(DCM_BeamName), BeamNumber(DCM_BeamNumber), BeamType(DCM_BeamType), + DepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/), DeviceSerialNumber(DCM_DeviceSerialNumber), FinalCumulativeMetersetWeight(DCM_FinalCumulativeMetersetWeight), + FixationEye(DCM_FixationEye), FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle), FixationLightPolarAngle(DCM_FixationLightPolarAngle), GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/), @@ -42,6 +44,7 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem) LateralSpreadingDeviceSequence(emptyDefaultItem /*emptyDefaultSequence*/), Manufacturer(DCM_Manufacturer), ManufacturerModelName(DCM_ManufacturerModelName), + ModulatedScanModeType(DCM_ModulatedScanModeType), NumberOfBlocks(DCM_NumberOfBlocks), NumberOfBoli(DCM_NumberOfBoli), NumberOfCompensators(DCM_NumberOfCompensators), @@ -84,8 +87,10 @@ DRTIonBeamSequence::Item::Item(const Item ©) BeamName(copy.BeamName), BeamNumber(copy.BeamNumber), BeamType(copy.BeamType), + DepthDoseParametersSequence(copy.DepthDoseParametersSequence), DeviceSerialNumber(copy.DeviceSerialNumber), FinalCumulativeMetersetWeight(copy.FinalCumulativeMetersetWeight), + FixationEye(copy.FixationEye), FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle), FixationLightPolarAngle(copy.FixationLightPolarAngle), GeneralAccessorySequence(copy.GeneralAccessorySequence), @@ -100,6 +105,7 @@ DRTIonBeamSequence::Item::Item(const Item ©) LateralSpreadingDeviceSequence(copy.LateralSpreadingDeviceSequence), Manufacturer(copy.Manufacturer), ManufacturerModelName(copy.ManufacturerModelName), + ModulatedScanModeType(copy.ModulatedScanModeType), NumberOfBlocks(copy.NumberOfBlocks), NumberOfBoli(copy.NumberOfBoli), NumberOfCompensators(copy.NumberOfCompensators), @@ -150,8 +156,10 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item ©) BeamName = copy.BeamName; BeamNumber = copy.BeamNumber; BeamType = copy.BeamType; + DepthDoseParametersSequence = copy.DepthDoseParametersSequence; DeviceSerialNumber = copy.DeviceSerialNumber; FinalCumulativeMetersetWeight = copy.FinalCumulativeMetersetWeight; + FixationEye = copy.FixationEye; FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle; FixationLightPolarAngle = copy.FixationLightPolarAngle; GeneralAccessorySequence = copy.GeneralAccessorySequence; @@ -166,6 +174,7 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item ©) LateralSpreadingDeviceSequence = copy.LateralSpreadingDeviceSequence; Manufacturer = copy.Manufacturer; ManufacturerModelName = copy.ManufacturerModelName; + ModulatedScanModeType = copy.ModulatedScanModeType; NumberOfBlocks = copy.NumberOfBlocks; NumberOfBoli = copy.NumberOfBoli; NumberOfCompensators = copy.NumberOfCompensators; @@ -216,6 +225,7 @@ void DRTIonBeamSequence::Item::clear() RadiationAtomicNumber.clear(); RadiationChargeState.clear(); ScanMode.clear(); + ModulatedScanModeType.clear(); TreatmentMachineName.clear(); Manufacturer.clear(); InstitutionName.clear(); @@ -226,6 +236,7 @@ void DRTIonBeamSequence::Item::clear() PrimaryDosimeterUnit.clear(); ReferencedToleranceTableNumber.clear(); VirtualSourceAxisDistances.clear(); + DepthDoseParametersSequence.clear(); IonBeamLimitingDeviceSequence.clear(); ReferencedPatientSetupNumber.clear(); ReferencedReferenceImageSequence.clear(); @@ -256,6 +267,7 @@ void DRTIonBeamSequence::Item::clear() PatientSupportAccessoryCode.clear(); FixationLightAzimuthalAngle.clear(); FixationLightPolarAngle.clear(); + FixationEye.clear(); FinalCumulativeMetersetWeight.clear(); NumberOfControlPoints.clear(); IonControlPointSequence.clear(); @@ -274,6 +286,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty() RadiationAtomicNumber.isEmpty() && RadiationChargeState.isEmpty() && ScanMode.isEmpty() && + ModulatedScanModeType.isEmpty() && TreatmentMachineName.isEmpty() && Manufacturer.isEmpty() && InstitutionName.isEmpty() && @@ -284,6 +297,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty() PrimaryDosimeterUnit.isEmpty() && ReferencedToleranceTableNumber.isEmpty() && VirtualSourceAxisDistances.isEmpty() && + DepthDoseParametersSequence.isEmpty() && IonBeamLimitingDeviceSequence.isEmpty() && ReferencedPatientSetupNumber.isEmpty() && ReferencedReferenceImageSequence.isEmpty() && @@ -314,6 +328,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty() PatientSupportAccessoryCode.isEmpty() && FixationLightAzimuthalAngle.isEmpty() && FixationLightPolarAngle.isEmpty() && + FixationEye.isEmpty() && FinalCumulativeMetersetWeight.isEmpty() && NumberOfControlPoints.isEmpty() && IonControlPointSequence.isEmpty(); @@ -342,6 +357,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, ScanMode, "1", "1", "IonBeamSequence"); + getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, TreatmentMachineName, "1", "2", "IonBeamSequence"); getAndCheckElementFromDataset(item, Manufacturer, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, InstitutionName, "1", "3", "IonBeamSequence"); @@ -352,6 +368,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, PrimaryDosimeterUnit, "1", "1", "IonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, VirtualSourceAxisDistances, "2", "1", "IonBeamSequence"); + DepthDoseParametersSequence.read(item, "1-n", "3", "IonBeamSequence"); IonBeamLimitingDeviceSequence.read(item, "1-n", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "IonBeamSequence"); ReferencedReferenceImageSequence.read(item, "1-n", "3", "IonBeamSequence"); @@ -382,6 +399,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "IonBeamSequence"); + getAndCheckElementFromDataset(item, FixationEye, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, FinalCumulativeMetersetWeight, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "IonBeamSequence"); IonControlPointSequence.read(item, "1-n", "1", "IonBeamSequence"); @@ -406,6 +424,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "IonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmShortString(TreatmentMachineName), "1", "2", "IonBeamSequence"); addElementToDataset(result, item, new DcmLongString(Manufacturer), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmLongString(InstitutionName), "1", "3", "IonBeamSequence"); @@ -416,6 +435,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmCodeString(PrimaryDosimeterUnit), "1", "1", "IonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(VirtualSourceAxisDistances), "2", "1", "IonBeamSequence"); + if (result.good()) result = DepthDoseParametersSequence.write(item, "1-n", "3", "IonBeamSequence"); if (result.good()) result = IonBeamLimitingDeviceSequence.write(item, "1-n", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "IonBeamSequence"); if (result.good()) result = ReferencedReferenceImageSequence.write(item, "1-n", "3", "IonBeamSequence"); @@ -446,6 +466,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "IonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(FinalCumulativeMetersetWeight), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "IonBeamSequence"); if (result.good()) result = IonControlPointSequence.write(item, "1-n", "1", "IonBeamSequence"); @@ -526,6 +547,15 @@ OFCondition DRTIonBeamSequence::Item::getFinalCumulativeMetersetWeight(Float64 & } +OFCondition DRTIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationEye, value, pos); +} + + OFCondition DRTIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -589,6 +619,15 @@ OFCondition DRTIonBeamSequence::Item::getManufacturerModelName(OFString &value, } +OFCondition DRTIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ModulatedScanModeType, value, pos); +} + + OFCondition DRTIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -1000,6 +1039,19 @@ OFCondition DRTIonBeamSequence::Item::setFinalCumulativeMetersetWeight(const OFS } +OFCondition DRTIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationEye.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -1083,6 +1135,19 @@ OFCondition DRTIonBeamSequence::Item::setManufacturerModelName(const OFString &v } +OFCondition DRTIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ModulatedScanModeType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -1491,7 +1556,7 @@ OFBool DRTIonBeamSequence::isValid() const } -unsigned long DRTIonBeamSequence::getNumberOfItems() const +size_t DRTIonBeamSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -1521,12 +1586,12 @@ OFCondition DRTIonBeamSequence::gotoNextItem() } -OFCondition DRTIonBeamSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonBeamSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1541,12 +1606,12 @@ OFCondition DRTIonBeamSequence::gotoItem(const unsigned long num, OFListIterator } -OFCondition DRTIonBeamSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonBeamSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1561,7 +1626,7 @@ OFCondition DRTIonBeamSequence::gotoItem(const unsigned long num, OFListConstIte } -OFCondition DRTIonBeamSequence::gotoItem(const unsigned long num) +OFCondition DRTIonBeamSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1597,7 +1662,7 @@ const DRTIonBeamSequence::Item &DRTIonBeamSequence::getCurrentItem() const } -OFCondition DRTIonBeamSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonBeamSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1607,7 +1672,7 @@ OFCondition DRTIonBeamSequence::getItem(const unsigned long num, Item *&item) } -DRTIonBeamSequence::Item &DRTIonBeamSequence::getItem(const unsigned long num) +DRTIonBeamSequence::Item &DRTIonBeamSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1617,7 +1682,7 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::getItem(const unsigned long num) } -const DRTIonBeamSequence::Item &DRTIonBeamSequence::getItem(const unsigned long num) const +const DRTIonBeamSequence::Item &DRTIonBeamSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1627,13 +1692,13 @@ const DRTIonBeamSequence::Item &DRTIonBeamSequence::getItem(const unsigned long } -DRTIonBeamSequence::Item &DRTIonBeamSequence::operator[](const unsigned long num) +DRTIonBeamSequence::Item &DRTIonBeamSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonBeamSequence::Item &DRTIonBeamSequence::operator[](const unsigned long num) const +const DRTIonBeamSequence::Item &DRTIonBeamSequence::operator[](const size_t num) const { return getItem(num); } @@ -1656,7 +1721,7 @@ OFCondition DRTIonBeamSequence::addItem(Item *&item) } -OFCondition DRTIonBeamSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonBeamSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1679,7 +1744,7 @@ OFCondition DRTIonBeamSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTIonBeamSequence::removeItem(const unsigned long pos) +OFCondition DRTIonBeamSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drticpds.cc b/dcmrt/libsrc/drticpds.cc index 5645f814..cc5bac30 100644 --- a/dcmrt/libsrc/drticpds.cc +++ b/dcmrt/libsrc/drticpds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonControlPointDeliverySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -24,6 +24,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem) BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(DCM_ChairHeadFramePosition), CorrectedParameterSequence(emptyDefaultItem /*emptyDefaultSequence*/), DeliveredMeterset(DCM_DeliveredMeterset), GantryAngle(DCM_GantryAngle), @@ -47,6 +48,9 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem) ReferencedControlPointIndex(DCM_ReferencedControlPointIndex), ScanSpotMetersetsDelivered(DCM_ScanSpotMetersetsDelivered), ScanSpotPositionMap(DCM_ScanSpotPositionMap), + ScanSpotPrescribedIndices(DCM_ScanSpotPrescribedIndices), + ScanSpotReordered(DCM_ScanSpotReordered), + ScanSpotTimeOffset(DCM_ScanSpotTimeOffset), ScanSpotTuneID(DCM_ScanSpotTuneID), ScanningSpotSize(DCM_ScanningSpotSize), SnoutPosition(DCM_SnoutPosition), @@ -69,6 +73,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item ©) BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence), BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(copy.ChairHeadFramePosition), CorrectedParameterSequence(copy.CorrectedParameterSequence), DeliveredMeterset(copy.DeliveredMeterset), GantryAngle(copy.GantryAngle), @@ -92,6 +97,9 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item ©) ReferencedControlPointIndex(copy.ReferencedControlPointIndex), ScanSpotMetersetsDelivered(copy.ScanSpotMetersetsDelivered), ScanSpotPositionMap(copy.ScanSpotPositionMap), + ScanSpotPrescribedIndices(copy.ScanSpotPrescribedIndices), + ScanSpotReordered(copy.ScanSpotReordered), + ScanSpotTimeOffset(copy.ScanSpotTimeOffset), ScanSpotTuneID(copy.ScanSpotTuneID), ScanningSpotSize(copy.ScanningSpotSize), SnoutPosition(copy.SnoutPosition), @@ -122,6 +130,7 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle; BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence; BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection; + ChairHeadFramePosition = copy.ChairHeadFramePosition; CorrectedParameterSequence = copy.CorrectedParameterSequence; DeliveredMeterset = copy.DeliveredMeterset; GantryAngle = copy.GantryAngle; @@ -145,6 +154,9 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It ReferencedControlPointIndex = copy.ReferencedControlPointIndex; ScanSpotMetersetsDelivered = copy.ScanSpotMetersetsDelivered; ScanSpotPositionMap = copy.ScanSpotPositionMap; + ScanSpotPrescribedIndices = copy.ScanSpotPrescribedIndices; + ScanSpotReordered = copy.ScanSpotReordered; + ScanSpotTimeOffset = copy.ScanSpotTimeOffset; ScanSpotTuneID = copy.ScanSpotTuneID; ScanningSpotSize = copy.ScanningSpotSize; SnoutPosition = copy.SnoutPosition; @@ -192,8 +204,11 @@ void DRTIonControlPointDeliverySequence::Item::clear() NumberOfScanSpotPositions.clear(); ScanSpotPositionMap.clear(); ScanSpotMetersetsDelivered.clear(); + ScanSpotTimeOffset.clear(); ScanningSpotSize.clear(); NumberOfPaintings.clear(); + ScanSpotReordered.clear(); + ScanSpotPrescribedIndices.clear(); PatientSupportAngle.clear(); PatientSupportRotationDirection.clear(); TableTopPitchAngle.clear(); @@ -201,6 +216,7 @@ void DRTIonControlPointDeliverySequence::Item::clear() TableTopRollAngle.clear(); TableTopRollRotationDirection.clear(); HeadFixationAngle.clear(); + ChairHeadFramePosition.clear(); TableTopVerticalPosition.clear(); TableTopLongitudinalPosition.clear(); TableTopLateralPosition.clear(); @@ -237,8 +253,11 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty() NumberOfScanSpotPositions.isEmpty() && ScanSpotPositionMap.isEmpty() && ScanSpotMetersetsDelivered.isEmpty() && + ScanSpotTimeOffset.isEmpty() && ScanningSpotSize.isEmpty() && NumberOfPaintings.isEmpty() && + ScanSpotReordered.isEmpty() && + ScanSpotPrescribedIndices.isEmpty() && PatientSupportAngle.isEmpty() && PatientSupportRotationDirection.isEmpty() && TableTopPitchAngle.isEmpty() && @@ -246,6 +265,7 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty() TableTopRollAngle.isEmpty() && TableTopRollRotationDirection.isEmpty() && HeadFixationAngle.isEmpty() && + ChairHeadFramePosition.isEmpty() && TableTopVerticalPosition.isEmpty() && TableTopLongitudinalPosition.isEmpty() && TableTopLateralPosition.isEmpty() && @@ -292,8 +312,11 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, NumberOfScanSpotPositions, "1", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, ScanSpotPositionMap, "1-n", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, ScanSpotMetersetsDelivered, "1-n", "1C", "IonControlPointDeliverySequence"); + getAndCheckElementFromDataset(item, ScanSpotTimeOffset, "1-n", "3", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, ScanningSpotSize, "2", "3", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, NumberOfPaintings, "1", "1C", "IonControlPointDeliverySequence"); + getAndCheckElementFromDataset(item, ScanSpotReordered, "1", "3", "IonControlPointDeliverySequence"); + getAndCheckElementFromDataset(item, ScanSpotPrescribedIndices, "1-n", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, PatientSupportAngle, "1", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, PatientSupportRotationDirection, "1", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopPitchAngle, "1", "2C", "IonControlPointDeliverySequence"); @@ -301,6 +324,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointDeliverySequence"); + getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointDeliverySequence"); @@ -343,8 +367,11 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmIntegerString(NumberOfScanSpotPositions), "1", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotPositionMap), "1-n", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetsDelivered), "1-n", "1C", "IonControlPointDeliverySequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotTimeOffset), "1-n", "3", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanningSpotSize), "2", "3", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfPaintings), "1", "1C", "IonControlPointDeliverySequence"); + addElementToDataset(result, item, new DcmCodeString(ScanSpotReordered), "1", "3", "IonControlPointDeliverySequence"); + addElementToDataset(result, item, new DcmIntegerString(ScanSpotPrescribedIndices), "1-n", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(PatientSupportAngle), "1", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmCodeString(PatientSupportRotationDirection), "1", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngle), "1", "2C", "IonControlPointDeliverySequence"); @@ -352,6 +379,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointDeliverySequence"); + addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointDeliverySequence"); @@ -390,6 +418,24 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getBeamLimitingDeviceRotat } +OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ChairHeadFramePosition, value, pos); +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos); +} + + OFCondition DRTIonControlPointDeliverySequence::Item::getDeliveredMeterset(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -615,6 +661,42 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPositionMap(Flo } +OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ScanSpotPrescribedIndices, value, pos); +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmIntegerString &, ScanSpotPrescribedIndices).getSint32(value, pos); +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotReordered(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ScanSpotReordered, value, pos); +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotTimeOffset(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, ScanSpotTimeOffset).getFloat32(value, pos); +} + + OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -794,6 +876,19 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setBeamLimitingDeviceRotat } +OFCondition DRTIonControlPointDeliverySequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ChairHeadFramePosition.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonControlPointDeliverySequence::Item::setDeliveredMeterset(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -991,6 +1086,41 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPositionMap(con } +OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPrescribedIndices(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = ScanSpotPrescribedIndices.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotReordered(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ScanSpotReordered.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotTimeOffset(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return ScanSpotTimeOffset.putFloat32(value, pos); +} + + OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -1247,7 +1377,7 @@ OFBool DRTIonControlPointDeliverySequence::isValid() const } -unsigned long DRTIonControlPointDeliverySequence::getNumberOfItems() const +size_t DRTIonControlPointDeliverySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -1277,12 +1407,12 @@ OFCondition DRTIonControlPointDeliverySequence::gotoNextItem() } -OFCondition DRTIonControlPointDeliverySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonControlPointDeliverySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1297,12 +1427,12 @@ OFCondition DRTIonControlPointDeliverySequence::gotoItem(const unsigned long num } -OFCondition DRTIonControlPointDeliverySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonControlPointDeliverySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1317,7 +1447,7 @@ OFCondition DRTIonControlPointDeliverySequence::gotoItem(const unsigned long num } -OFCondition DRTIonControlPointDeliverySequence::gotoItem(const unsigned long num) +OFCondition DRTIonControlPointDeliverySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1353,7 +1483,7 @@ const DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequen } -OFCondition DRTIonControlPointDeliverySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonControlPointDeliverySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1363,7 +1493,7 @@ OFCondition DRTIonControlPointDeliverySequence::getItem(const unsigned long num, } -DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::getItem(const unsigned long num) +DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1373,7 +1503,7 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::ge } -const DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::getItem(const unsigned long num) const +const DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1383,13 +1513,13 @@ const DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequen } -DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::operator[](const unsigned long num) +DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::operator[](const size_t num) { return getItem(num); } -const DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::operator[](const unsigned long num) const +const DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::operator[](const size_t num) const { return getItem(num); } @@ -1412,7 +1542,7 @@ OFCondition DRTIonControlPointDeliverySequence::addItem(Item *&item) } -OFCondition DRTIonControlPointDeliverySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonControlPointDeliverySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1435,7 +1565,7 @@ OFCondition DRTIonControlPointDeliverySequence::insertItem(const unsigned long p } -OFCondition DRTIonControlPointDeliverySequence::removeItem(const unsigned long pos) +OFCondition DRTIonControlPointDeliverySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drticps.cc b/dcmrt/libsrc/drticps.cc index 28430e1b..16c61cbb 100644 --- a/dcmrt/libsrc/drticps.cc +++ b/dcmrt/libsrc/drticps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -24,6 +24,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem) BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(DCM_ChairHeadFramePosition), ControlPointIndex(DCM_ControlPointIndex), CumulativeMetersetWeight(DCM_CumulativeMetersetWeight), ExternalContourEntryPoint(DCM_ExternalContourEntryPoint), @@ -47,6 +48,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem) ReferencedDoseReferenceSequence(emptyDefaultItem /*emptyDefaultSequence*/), ScanSpotMetersetWeights(DCM_ScanSpotMetersetWeights), ScanSpotPositionMap(DCM_ScanSpotPositionMap), + ScanSpotReorderingAllowed(DCM_ScanSpotReorderingAllowed), ScanSpotTuneID(DCM_ScanSpotTuneID), ScanningSpotSize(DCM_ScanningSpotSize), SnoutPosition(DCM_SnoutPosition), @@ -67,6 +69,7 @@ DRTIonControlPointSequence::Item::Item(const Item ©) BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence), BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(copy.ChairHeadFramePosition), ControlPointIndex(copy.ControlPointIndex), CumulativeMetersetWeight(copy.CumulativeMetersetWeight), ExternalContourEntryPoint(copy.ExternalContourEntryPoint), @@ -90,6 +93,7 @@ DRTIonControlPointSequence::Item::Item(const Item ©) ReferencedDoseReferenceSequence(copy.ReferencedDoseReferenceSequence), ScanSpotMetersetWeights(copy.ScanSpotMetersetWeights), ScanSpotPositionMap(copy.ScanSpotPositionMap), + ScanSpotReorderingAllowed(copy.ScanSpotReorderingAllowed), ScanSpotTuneID(copy.ScanSpotTuneID), ScanningSpotSize(copy.ScanningSpotSize), SnoutPosition(copy.SnoutPosition), @@ -118,6 +122,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle; BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence; BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection; + ChairHeadFramePosition = copy.ChairHeadFramePosition; ControlPointIndex = copy.ControlPointIndex; CumulativeMetersetWeight = copy.CumulativeMetersetWeight; ExternalContourEntryPoint = copy.ExternalContourEntryPoint; @@ -141,6 +146,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co ReferencedDoseReferenceSequence = copy.ReferencedDoseReferenceSequence; ScanSpotMetersetWeights = copy.ScanSpotMetersetWeights; ScanSpotPositionMap = copy.ScanSpotPositionMap; + ScanSpotReorderingAllowed = copy.ScanSpotReorderingAllowed; ScanSpotTuneID = copy.ScanSpotTuneID; ScanningSpotSize = copy.ScanningSpotSize; SnoutPosition = copy.SnoutPosition; @@ -180,6 +186,7 @@ void DRTIonControlPointSequence::Item::clear() BeamLimitingDeviceAngle.clear(); BeamLimitingDeviceRotationDirection.clear(); ScanSpotTuneID.clear(); + ScanSpotReorderingAllowed.clear(); NumberOfScanSpotPositions.clear(); ScanSpotPositionMap.clear(); ScanSpotMetersetWeights.clear(); @@ -192,6 +199,7 @@ void DRTIonControlPointSequence::Item::clear() TableTopRollAngle.clear(); TableTopRollRotationDirection.clear(); HeadFixationAngle.clear(); + ChairHeadFramePosition.clear(); TableTopVerticalPosition.clear(); TableTopLongitudinalPosition.clear(); TableTopLateralPosition.clear(); @@ -223,6 +231,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty() BeamLimitingDeviceAngle.isEmpty() && BeamLimitingDeviceRotationDirection.isEmpty() && ScanSpotTuneID.isEmpty() && + ScanSpotReorderingAllowed.isEmpty() && NumberOfScanSpotPositions.isEmpty() && ScanSpotPositionMap.isEmpty() && ScanSpotMetersetWeights.isEmpty() && @@ -235,6 +244,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty() TableTopRollAngle.isEmpty() && TableTopRollRotationDirection.isEmpty() && HeadFixationAngle.isEmpty() && + ChairHeadFramePosition.isEmpty() && TableTopVerticalPosition.isEmpty() && TableTopLongitudinalPosition.isEmpty() && TableTopLateralPosition.isEmpty() && @@ -276,6 +286,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, BeamLimitingDeviceAngle, "1", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, BeamLimitingDeviceRotationDirection, "1", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, ScanSpotTuneID, "1", "1C", "IonControlPointSequence"); + getAndCheckElementFromDataset(item, ScanSpotReorderingAllowed, "1", "3", "IonControlPointSequence"); getAndCheckElementFromDataset(item, NumberOfScanSpotPositions, "1", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, ScanSpotPositionMap, "1-n", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, ScanSpotMetersetWeights, "1-n", "1C", "IonControlPointSequence"); @@ -288,6 +299,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointSequence"); + getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointSequence"); @@ -325,6 +337,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmDecimalString(BeamLimitingDeviceAngle), "1", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmCodeString(BeamLimitingDeviceRotationDirection), "1", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmShortString(ScanSpotTuneID), "1", "1C", "IonControlPointSequence"); + addElementToDataset(result, item, new DcmCodeString(ScanSpotReorderingAllowed), "1", "3", "IonControlPointSequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfScanSpotPositions), "1", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotPositionMap), "1-n", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetWeights), "1-n", "1C", "IonControlPointSequence"); @@ -337,6 +350,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointSequence"); + addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointSequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointSequence"); @@ -376,6 +390,24 @@ OFCondition DRTIonControlPointSequence::Item::getBeamLimitingDeviceRotationDirec } +OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ChairHeadFramePosition, value, pos); +} + + +OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos); +} + + OFCondition DRTIonControlPointSequence::Item::getControlPointIndex(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -628,6 +660,15 @@ OFCondition DRTIonControlPointSequence::Item::getScanSpotPositionMap(Float32 &va } +OFCondition DRTIonControlPointSequence::Item::getScanSpotReorderingAllowed(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ScanSpotReorderingAllowed, value, pos); +} + + OFCondition DRTIonControlPointSequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -798,6 +839,19 @@ OFCondition DRTIonControlPointSequence::Item::setBeamLimitingDeviceRotationDirec } +OFCondition DRTIonControlPointSequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ChairHeadFramePosition.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonControlPointSequence::Item::setControlPointIndex(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -1008,6 +1062,19 @@ OFCondition DRTIonControlPointSequence::Item::setScanSpotPositionMap(const Float } +OFCondition DRTIonControlPointSequence::Item::setScanSpotReorderingAllowed(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ScanSpotReorderingAllowed.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonControlPointSequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -1238,7 +1305,7 @@ OFBool DRTIonControlPointSequence::isValid() const } -unsigned long DRTIonControlPointSequence::getNumberOfItems() const +size_t DRTIonControlPointSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -1268,12 +1335,12 @@ OFCondition DRTIonControlPointSequence::gotoNextItem() } -OFCondition DRTIonControlPointSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonControlPointSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1288,12 +1355,12 @@ OFCondition DRTIonControlPointSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTIonControlPointSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonControlPointSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1308,7 +1375,7 @@ OFCondition DRTIonControlPointSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTIonControlPointSequence::gotoItem(const unsigned long num) +OFCondition DRTIonControlPointSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1344,7 +1411,7 @@ const DRTIonControlPointSequence::Item &DRTIonControlPointSequence::getCurrentIt } -OFCondition DRTIonControlPointSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonControlPointSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1354,7 +1421,7 @@ OFCondition DRTIonControlPointSequence::getItem(const unsigned long num, Item *& } -DRTIonControlPointSequence::Item &DRTIonControlPointSequence::getItem(const unsigned long num) +DRTIonControlPointSequence::Item &DRTIonControlPointSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1364,7 +1431,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::getItem(const unsi } -const DRTIonControlPointSequence::Item &DRTIonControlPointSequence::getItem(const unsigned long num) const +const DRTIonControlPointSequence::Item &DRTIonControlPointSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1374,13 +1441,13 @@ const DRTIonControlPointSequence::Item &DRTIonControlPointSequence::getItem(cons } -DRTIonControlPointSequence::Item &DRTIonControlPointSequence::operator[](const unsigned long num) +DRTIonControlPointSequence::Item &DRTIonControlPointSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonControlPointSequence::Item &DRTIonControlPointSequence::operator[](const unsigned long num) const +const DRTIonControlPointSequence::Item &DRTIonControlPointSequence::operator[](const size_t num) const { return getItem(num); } @@ -1403,7 +1470,7 @@ OFCondition DRTIonControlPointSequence::addItem(Item *&item) } -OFCondition DRTIonControlPointSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonControlPointSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1426,7 +1493,7 @@ OFCondition DRTIonControlPointSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTIonControlPointSequence::removeItem(const unsigned long pos) +OFCondition DRTIonControlPointSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtics.cc b/dcmrt/libsrc/drtics.cc index cc4ab0a0..70003ece 100644 --- a/dcmrt/libsrc/drtics.cc +++ b/dcmrt/libsrc/drtics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTInstitutionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTInstitutionCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTInstitutionCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::Item::operator=(co EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTInstitutionCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTInstitutionCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTInstitutionCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "InstitutionCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "InstitutionCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTInstitutionCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "InstitutionCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "InstitutionCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTInstitutionCodeSequence::Item::getMappingResource(OFString &value } +OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTInstitutionCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTInstitutionCodeSequence::isValid() const } -unsigned long DRTInstitutionCodeSequence::getNumberOfItems() const +size_t DRTInstitutionCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTInstitutionCodeSequence::gotoNextItem() } -OFCondition DRTInstitutionCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTInstitutionCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTInstitutionCodeSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTInstitutionCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTInstitutionCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTInstitutionCodeSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTInstitutionCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTInstitutionCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::getCurrentIt } -OFCondition DRTInstitutionCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTInstitutionCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTInstitutionCodeSequence::getItem(const unsigned long num, Item *& } -DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::getItem(const unsigned long num) +DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::getItem(const unsi } -const DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::getItem(const unsigned long num) const +const DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::getItem(cons } -DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::operator[](const unsigned long num) +DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::operator[](const unsigned long num) const +const DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTInstitutionCodeSequence::addItem(Item *&item) } -OFCondition DRTInstitutionCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTInstitutionCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTInstitutionCodeSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTInstitutionCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTInstitutionCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtiis.cc b/dcmrt/libsrc/drtiis.cc index 145601cf..b6821d82 100644 --- a/dcmrt/libsrc/drtiis.cc +++ b/dcmrt/libsrc/drtiis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIconImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -25,6 +25,7 @@ DRTIconImageSequence::Item::Item(const OFBool emptyDefaultItem) BitsStored(DCM_BitsStored), BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData), BluePaletteColorLookupTableDescriptor(DCM_BluePaletteColorLookupTableDescriptor), + ColorSpace(DCM_ColorSpace), Columns(DCM_Columns), GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData), GreenPaletteColorLookupTableDescriptor(DCM_GreenPaletteColorLookupTableDescriptor), @@ -51,6 +52,7 @@ DRTIconImageSequence::Item::Item(const Item ©) BitsStored(copy.BitsStored), BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData), BluePaletteColorLookupTableDescriptor(copy.BluePaletteColorLookupTableDescriptor), + ColorSpace(copy.ColorSpace), Columns(copy.Columns), GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData), GreenPaletteColorLookupTableDescriptor(copy.GreenPaletteColorLookupTableDescriptor), @@ -85,6 +87,7 @@ DRTIconImageSequence::Item &DRTIconImageSequence::Item::operator=(const Item &co BitsStored = copy.BitsStored; BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData; BluePaletteColorLookupTableDescriptor = copy.BluePaletteColorLookupTableDescriptor; + ColorSpace = copy.ColorSpace; Columns = copy.Columns; GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData; GreenPaletteColorLookupTableDescriptor = copy.GreenPaletteColorLookupTableDescriptor; @@ -119,7 +122,6 @@ void DRTIconImageSequence::Item::clear() BitsStored.clear(); HighBit.clear(); PixelRepresentation.clear(); - PixelData.clear(); PlanarConfiguration.clear(); PixelAspectRatio.clear(); SmallestImagePixelValue.clear(); @@ -131,6 +133,8 @@ void DRTIconImageSequence::Item::clear() GreenPaletteColorLookupTableData.clear(); BluePaletteColorLookupTableData.clear(); ICCProfile.clear(); + ColorSpace.clear(); + PixelData.clear(); } } @@ -145,7 +149,6 @@ OFBool DRTIconImageSequence::Item::isEmpty() BitsStored.isEmpty() && HighBit.isEmpty() && PixelRepresentation.isEmpty() && - PixelData.isEmpty() && PlanarConfiguration.isEmpty() && PixelAspectRatio.isEmpty() && SmallestImagePixelValue.isEmpty() && @@ -156,7 +159,9 @@ OFBool DRTIconImageSequence::Item::isEmpty() RedPaletteColorLookupTableData.isEmpty() && GreenPaletteColorLookupTableData.isEmpty() && BluePaletteColorLookupTableData.isEmpty() && - ICCProfile.isEmpty(); + ICCProfile.isEmpty() && + ColorSpace.isEmpty() && + PixelData.isEmpty(); } @@ -181,7 +186,6 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, BitsStored, "1", "1", "IconImageSequence"); getAndCheckElementFromDataset(item, HighBit, "1", "1", "IconImageSequence"); getAndCheckElementFromDataset(item, PixelRepresentation, "1", "1", "IconImageSequence"); - getAndCheckElementFromDataset(item, PixelData, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, PlanarConfiguration, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, PixelAspectRatio, "2", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, SmallestImagePixelValue, "1", "3", "IconImageSequence"); @@ -193,6 +197,8 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, GreenPaletteColorLookupTableData, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, BluePaletteColorLookupTableData, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, ICCProfile, "1", "3", "IconImageSequence"); + getAndCheckElementFromDataset(item, ColorSpace, "1", "3", "IconImageSequence"); + getAndCheckElementFromDataset(item, PixelData, "1", "1", "IconImageSequence"); result = EC_Normal; } return result; @@ -213,7 +219,6 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUnsignedShort(BitsStored), "1", "1", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(HighBit), "1", "1", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(PixelRepresentation), "1", "1", "IconImageSequence"); - addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmIntegerString(PixelAspectRatio), "2", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "IconImageSequence"); @@ -225,6 +230,8 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "IconImageSequence"); + addElementToDataset(result, item, new DcmCodeString(ColorSpace), "1", "3", "IconImageSequence"); + addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1", "IconImageSequence"); } return result; } @@ -276,6 +283,15 @@ OFCondition DRTIconImageSequence::Item::getBluePaletteColorLookupTableDescriptor } +OFCondition DRTIconImageSequence::Item::getColorSpace(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ColorSpace, value, pos); +} + + OFCondition DRTIconImageSequence::Item::getColumns(Uint16 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -486,6 +502,19 @@ OFCondition DRTIconImageSequence::Item::setBluePaletteColorLookupTableDescriptor } +OFCondition DRTIconImageSequence::Item::setColorSpace(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ColorSpace.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIconImageSequence::Item::setColumns(const Uint16 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -732,7 +761,7 @@ OFBool DRTIconImageSequence::isValid() const } -unsigned long DRTIconImageSequence::getNumberOfItems() const +size_t DRTIconImageSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -762,12 +791,12 @@ OFCondition DRTIconImageSequence::gotoNextItem() } -OFCondition DRTIconImageSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIconImageSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -782,12 +811,12 @@ OFCondition DRTIconImageSequence::gotoItem(const unsigned long num, OFListIterat } -OFCondition DRTIconImageSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIconImageSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -802,7 +831,7 @@ OFCondition DRTIconImageSequence::gotoItem(const unsigned long num, OFListConstI } -OFCondition DRTIconImageSequence::gotoItem(const unsigned long num) +OFCondition DRTIconImageSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -838,7 +867,7 @@ const DRTIconImageSequence::Item &DRTIconImageSequence::getCurrentItem() const } -OFCondition DRTIconImageSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIconImageSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -848,7 +877,7 @@ OFCondition DRTIconImageSequence::getItem(const unsigned long num, Item *&item) } -DRTIconImageSequence::Item &DRTIconImageSequence::getItem(const unsigned long num) +DRTIconImageSequence::Item &DRTIconImageSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -858,7 +887,7 @@ DRTIconImageSequence::Item &DRTIconImageSequence::getItem(const unsigned long nu } -const DRTIconImageSequence::Item &DRTIconImageSequence::getItem(const unsigned long num) const +const DRTIconImageSequence::Item &DRTIconImageSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -868,13 +897,13 @@ const DRTIconImageSequence::Item &DRTIconImageSequence::getItem(const unsigned l } -DRTIconImageSequence::Item &DRTIconImageSequence::operator[](const unsigned long num) +DRTIconImageSequence::Item &DRTIconImageSequence::operator[](const size_t num) { return getItem(num); } -const DRTIconImageSequence::Item &DRTIconImageSequence::operator[](const unsigned long num) const +const DRTIconImageSequence::Item &DRTIconImageSequence::operator[](const size_t num) const { return getItem(num); } @@ -897,7 +926,7 @@ OFCondition DRTIconImageSequence::addItem(Item *&item) } -OFCondition DRTIconImageSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIconImageSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -920,7 +949,7 @@ OFCondition DRTIconImageSequence::insertItem(const unsigned long pos, Item *&ite } -OFCondition DRTIconImageSequence::removeItem(const unsigned long pos) +OFCondition DRTIconImageSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtimage.cc b/dcmrt/libsrc/drtimage.cc index f55e999e..1451213b 100644 --- a/dcmrt/libsrc/drtimage.cc +++ b/dcmrt/libsrc/drtimage.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTImageIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,6 +23,9 @@ DRTImageIOD::DRTImageIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTImageIOD::DRTImageIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTImageIOD::DRTImageIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTImageIOD::DRTImageIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTImageIOD::DRTImageIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -133,11 +154,6 @@ DRTImageIOD::DRTImageIOD() AcquisitionDate(DCM_AcquisitionDate), AcquisitionTime(DCM_AcquisitionTime), AcquisitionDateTime(DCM_AcquisitionDateTime), - ReferencedImageSequence(), - DerivationDescription(DCM_DerivationDescription), - DerivationCodeSequence(), - SourceImageSequence(), - ReferencedInstanceSequence(), ImagesInAcquisition(DCM_ImagesInAcquisition), ImageComments(DCM_ImageComments), QualityControlImage(DCM_QualityControlImage), @@ -150,9 +166,14 @@ DRTImageIOD::DRTImageIOD() PresentationLUTShape(DCM_PresentationLUTShape), IrradiationEventUID(DCM_IrradiationEventUID), RealWorldValueMappingSequence(), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), Rows(DCM_Rows), Columns(DCM_Columns), - PixelData(DCM_PixelData), PlanarConfiguration(DCM_PlanarConfiguration), PixelAspectRatio(DCM_PixelAspectRatio), SmallestImagePixelValue(DCM_SmallestImagePixelValue), @@ -164,6 +185,8 @@ DRTImageIOD::DRTImageIOD() GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData), ICCProfile(DCM_ICCProfile), + ColorSpace(DCM_ColorSpace), + PixelData(DCM_PixelData), PixelDataProviderURL(DCM_PixelDataProviderURL), PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit), ContrastBolusAgent(DCM_ContrastBolusAgent), @@ -241,6 +264,9 @@ DRTImageIOD::DRTImageIOD() TableTopLateralPosition(DCM_TableTopLateralPosition), IsocenterPosition(DCM_IsocenterPosition), PatientPosition(DCM_PatientPosition), + ExposureTime(DCM_ExposureTime), + ExposureTimeInms(DCM_ExposureTimeInms), + MetersetExposure(DCM_MetersetExposure), ModalityLUTSequence(), RescaleIntercept(DCM_RescaleIntercept), RescaleSlope(DCM_RescaleSlope), @@ -264,6 +290,8 @@ DRTImageIOD::DRTImageIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -295,6 +323,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -310,12 +341,19 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -349,7 +387,16 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -369,6 +416,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -393,6 +441,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -405,11 +454,6 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) AcquisitionDate(copy.AcquisitionDate), AcquisitionTime(copy.AcquisitionTime), AcquisitionDateTime(copy.AcquisitionDateTime), - ReferencedImageSequence(copy.ReferencedImageSequence), - DerivationDescription(copy.DerivationDescription), - DerivationCodeSequence(copy.DerivationCodeSequence), - SourceImageSequence(copy.SourceImageSequence), - ReferencedInstanceSequence(copy.ReferencedInstanceSequence), ImagesInAcquisition(copy.ImagesInAcquisition), ImageComments(copy.ImageComments), QualityControlImage(copy.QualityControlImage), @@ -422,9 +466,14 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) PresentationLUTShape(copy.PresentationLUTShape), IrradiationEventUID(copy.IrradiationEventUID), RealWorldValueMappingSequence(copy.RealWorldValueMappingSequence), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), Rows(copy.Rows), Columns(copy.Columns), - PixelData(copy.PixelData), PlanarConfiguration(copy.PlanarConfiguration), PixelAspectRatio(copy.PixelAspectRatio), SmallestImagePixelValue(copy.SmallestImagePixelValue), @@ -436,6 +485,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData), ICCProfile(copy.ICCProfile), + ColorSpace(copy.ColorSpace), + PixelData(copy.PixelData), PixelDataProviderURL(copy.PixelDataProviderURL), PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit), ContrastBolusAgent(copy.ContrastBolusAgent), @@ -513,6 +564,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) TableTopLateralPosition(copy.TableTopLateralPosition), IsocenterPosition(copy.IsocenterPosition), PatientPosition(copy.PatientPosition), + ExposureTime(copy.ExposureTime), + ExposureTimeInms(copy.ExposureTimeInms), + MetersetExposure(copy.MetersetExposure), ModalityLUTSequence(copy.ModalityLUTSequence), RescaleIntercept(copy.RescaleIntercept), RescaleSlope(copy.RescaleSlope), @@ -536,6 +590,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -573,6 +629,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -588,12 +647,19 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -627,7 +693,16 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -647,6 +722,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -671,6 +747,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -683,11 +760,6 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) AcquisitionDate = copy.AcquisitionDate; AcquisitionTime = copy.AcquisitionTime; AcquisitionDateTime = copy.AcquisitionDateTime; - ReferencedImageSequence = copy.ReferencedImageSequence; - DerivationDescription = copy.DerivationDescription; - DerivationCodeSequence = copy.DerivationCodeSequence; - SourceImageSequence = copy.SourceImageSequence; - ReferencedInstanceSequence = copy.ReferencedInstanceSequence; ImagesInAcquisition = copy.ImagesInAcquisition; ImageComments = copy.ImageComments; QualityControlImage = copy.QualityControlImage; @@ -700,9 +772,14 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) PresentationLUTShape = copy.PresentationLUTShape; IrradiationEventUID = copy.IrradiationEventUID; RealWorldValueMappingSequence = copy.RealWorldValueMappingSequence; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; Rows = copy.Rows; Columns = copy.Columns; - PixelData = copy.PixelData; PlanarConfiguration = copy.PlanarConfiguration; PixelAspectRatio = copy.PixelAspectRatio; SmallestImagePixelValue = copy.SmallestImagePixelValue; @@ -714,6 +791,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData; BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData; ICCProfile = copy.ICCProfile; + ColorSpace = copy.ColorSpace; + PixelData = copy.PixelData; PixelDataProviderURL = copy.PixelDataProviderURL; PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit; ContrastBolusAgent = copy.ContrastBolusAgent; @@ -791,6 +870,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) TableTopLateralPosition = copy.TableTopLateralPosition; IsocenterPosition = copy.IsocenterPosition; PatientPosition = copy.PatientPosition; + ExposureTime = copy.ExposureTime; + ExposureTimeInms = copy.ExposureTimeInms; + MetersetExposure = copy.MetersetExposure; ModalityLUTSequence = copy.ModalityLUTSequence; RescaleIntercept = copy.RescaleIntercept; RescaleSlope = copy.RescaleSlope; @@ -814,6 +896,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -846,6 +930,9 @@ void DRTImageIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -861,12 +948,19 @@ void DRTImageIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -900,7 +994,16 @@ void DRTImageIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -920,6 +1023,7 @@ void DRTImageIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -944,6 +1048,7 @@ void DRTImageIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -957,11 +1062,6 @@ void DRTImageIOD::clear() AcquisitionDate.clear(); AcquisitionTime.clear(); AcquisitionDateTime.clear(); - ReferencedImageSequence.clear(); - DerivationDescription.clear(); - DerivationCodeSequence.clear(); - SourceImageSequence.clear(); - ReferencedInstanceSequence.clear(); ImagesInAcquisition.clear(); ImageComments.clear(); QualityControlImage.clear(); @@ -974,6 +1074,12 @@ void DRTImageIOD::clear() PresentationLUTShape.clear(); IrradiationEventUID.clear(); RealWorldValueMappingSequence.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SamplesPerPixel.clear(); PhotometricInterpretation.clear(); Rows.clear(); @@ -982,7 +1088,6 @@ void DRTImageIOD::clear() BitsStored.clear(); HighBit.clear(); PixelRepresentation.clear(); - PixelData.clear(); PlanarConfiguration.clear(); PixelAspectRatio.clear(); SmallestImagePixelValue.clear(); @@ -994,6 +1099,8 @@ void DRTImageIOD::clear() GreenPaletteColorLookupTableData.clear(); BluePaletteColorLookupTableData.clear(); ICCProfile.clear(); + ColorSpace.clear(); + PixelData.clear(); PixelDataProviderURL.clear(); PixelPaddingRangeLimit.clear(); ContrastBolusAgent.clear(); @@ -1064,6 +1171,9 @@ void DRTImageIOD::clear() TableTopLateralPosition.clear(); IsocenterPosition.clear(); PatientPosition.clear(); + ExposureTime.clear(); + ExposureTimeInms.clear(); + MetersetExposure.clear(); ModalityLUTSequence.clear(); RescaleIntercept.clear(); RescaleSlope.clear(); @@ -1087,6 +1197,8 @@ void DRTImageIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -1171,6 +1283,7 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -1186,11 +1299,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule"); - ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule"); - DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule"); @@ -1204,6 +1312,14 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IrradiationEventUID, "1-n", "3", "GeneralImageModule"); RealWorldValueMappingSequence.read(dataset, "1-n", "3", "GeneralImageModule"); + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- ImagePixelModule (M) --- // getAndCheckElementFromDataset(dataset, SamplesPerPixel, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, PhotometricInterpretation, "1", "1", "ImagePixelModule"); @@ -1213,7 +1329,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule"); - getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule"); @@ -1225,6 +1340,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule"); @@ -1322,6 +1439,9 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, TableTopLateralPosition, "1", "3", "RTImageModule"); getAndCheckElementFromDataset(dataset, IsocenterPosition, "3", "3", "RTImageModule"); getAndCheckElementFromDataset(dataset, PatientPosition, "1", "1C", "RTImageModule"); + getAndCheckElementFromDataset(dataset, ExposureTime, "1", "3", "RTImageModule"); + getAndCheckElementFromDataset(dataset, ExposureTimeInms, "1", "3", "RTImageModule"); + getAndCheckElementFromDataset(dataset, MetersetExposure, "1", "3", "RTImageModule"); // --- ModalityLUTModule (U) --- ModalityLUTSequence.read(dataset, "1-n", "1C", "ModalityLUTModule"); @@ -1356,6 +1476,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -1398,6 +1520,9 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -1413,12 +1538,19 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -1474,7 +1606,16 @@ OFCondition DRTImageIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -1511,6 +1652,7 @@ OFCondition DRTImageIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -1549,6 +1691,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1564,12 +1709,19 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1614,7 +1766,16 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1642,6 +1803,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1678,6 +1840,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1693,11 +1856,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule"); - if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule"); - if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule"); @@ -1711,6 +1869,17 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(IrradiationEventUID), "1-n", "3", "GeneralImageModule"); if (result.good()) result = RealWorldValueMappingSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- ImagePixelModule (M) --- // addElementToDataset(result, dataset, new DcmUnsignedShort(SamplesPerPixel), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmCodeString(PhotometricInterpretation), "1", "1", "ImagePixelModule"); @@ -1720,7 +1889,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule"); - addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule"); @@ -1732,6 +1900,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule"); @@ -1831,6 +2001,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmDecimalString(TableTopLateralPosition), "1", "3", "RTImageModule"); addElementToDataset(result, dataset, new DcmDecimalString(IsocenterPosition), "3", "3", "RTImageModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientPosition), "1", "1C", "RTImageModule"); + addElementToDataset(result, dataset, new DcmIntegerString(ExposureTime), "1", "3", "RTImageModule"); + addElementToDataset(result, dataset, new DcmFloatingPointDouble(ExposureTimeInms), "1", "3", "RTImageModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MetersetExposure), "1", "3", "RTImageModule"); // --- ModalityLUTModule (U) --- if (isModalityLUTModulePresent(OFFalse /*complete*/)) @@ -1871,6 +2044,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1937,7 +2112,16 @@ OFBool DRTImageIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1981,6 +2165,18 @@ OFBool DRTImageIOD::isFrameOfReferenceModulePresent(const OFBool complete) } +OFBool DRTImageIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTImageIOD::isContrastBolusModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -2158,6 +2354,12 @@ OFCondition DRTImageIOD::getAdmittingDiagnosesDescription(OFString &value, const } +OFCondition DRTImageIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTImageIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -2317,6 +2519,12 @@ OFCondition DRTImageIOD::getClinicalTrialTimePointID(OFString &value, const sign } +OFCondition DRTImageIOD::getColorSpace(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(ColorSpace, value, pos); +} + + OFCondition DRTImageIOD::getColumns(Uint16 &value, const unsigned long pos) const { return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos); @@ -2515,6 +2723,24 @@ OFCondition DRTImageIOD::getEthnicGroup(OFString &value, const signed long pos) } +OFCondition DRTImageIOD::getExposureTime(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(ExposureTime, value, pos); +} + + +OFCondition DRTImageIOD::getExposureTime(Sint32 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmIntegerString &, ExposureTime).getSint32(value, pos); +} + + +OFCondition DRTImageIOD::getExposureTimeInms(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmFloatingPointDouble &, ExposureTimeInms).getFloat64(value, pos); +} + + OFCondition DRTImageIOD::getFractionNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(FractionNumber, value, pos); @@ -2791,6 +3017,12 @@ OFCondition DRTImageIOD::getLargestImagePixelValue(Uint16 &value, const unsigned } +OFCondition DRTImageIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTImageIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -2839,6 +3071,48 @@ OFCondition DRTImageIOD::getManufacturerModelName(OFString &value, const signed } +OFCondition DRTImageIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTImageIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTImageIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTImageIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTImageIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + +OFCondition DRTImageIOD::getMetersetExposure(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MetersetExposure, value, pos); +} + + +OFCondition DRTImageIOD::getMetersetExposure(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MetersetExposure).getFloat64(value, pos); +} + + OFCondition DRTImageIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -2899,18 +3173,42 @@ OFCondition DRTImageIOD::getPatientAge(OFString &value, const signed long pos) c } +OFCondition DRTImageIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTImageIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTImageIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTImageIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTImageIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTImageIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTImageIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -2923,6 +3221,12 @@ OFCondition DRTImageIOD::getPatientComments(OFString &value, const signed long p } +OFCondition DRTImageIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTImageIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -2983,6 +3287,12 @@ OFCondition DRTImageIOD::getPatientSpeciesDescription(OFString &value, const sig } +OFCondition DRTImageIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTImageIOD::getPatientSupportAngle(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientSupportAngle, value, pos); @@ -3121,6 +3431,12 @@ OFCondition DRTImageIOD::getPreferredPlaybackSequencing(Uint16 &value, const uns } +OFCondition DRTImageIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTImageIOD::getPresentationLUTShape(OFString &value, const signed long pos) const { return getStringValueFromElement(PresentationLUTShape, value, pos); @@ -3496,6 +3812,12 @@ OFCondition DRTImageIOD::getSmallestImagePixelValue(Uint16 &value, const unsigne } +OFCondition DRTImageIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTImageIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -3580,6 +3902,24 @@ OFCondition DRTImageIOD::getStopTrim(Sint32 &value, const unsigned long pos) con } +OFCondition DRTImageIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTImageIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTImageIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTImageIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -3853,6 +4193,15 @@ OFCondition DRTImageIOD::setAdmittingDiagnosesDescription(const OFString &value, } +OFCondition DRTImageIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4048,6 +4397,15 @@ OFCondition DRTImageIOD::setClinicalTrialTimePointID(const OFString &value, cons } +OFCondition DRTImageIOD::setColorSpace(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ColorSpace.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setColumns(const Uint16 value, const unsigned long pos) { return Columns.putUint16(value, pos); @@ -4261,6 +4619,21 @@ OFCondition DRTImageIOD::setEthnicGroup(const OFString &value, const OFBool chec } +OFCondition DRTImageIOD::setExposureTime(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ExposureTime.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setExposureTimeInms(const Float64 value, const unsigned long pos) +{ + return ExposureTimeInms.putFloat64(value, pos); +} + + OFCondition DRTImageIOD::setFractionNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal; @@ -4513,6 +4886,15 @@ OFCondition DRTImageIOD::setLargestImagePixelValue(const Uint16 value, const uns } +OFCondition DRTImageIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4567,6 +4949,42 @@ OFCondition DRTImageIOD::setManufacturerModelName(const OFString &value, const O } +OFCondition DRTImageIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setMetersetExposure(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MetersetExposure.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4648,6 +5066,15 @@ OFCondition DRTImageIOD::setPatientAge(const OFString &value, const OFBool check } +OFCondition DRTImageIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -4657,6 +5084,15 @@ OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool } +OFCondition DRTImageIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -4666,6 +5102,15 @@ OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool } +OFCondition DRTImageIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4684,6 +5129,15 @@ OFCondition DRTImageIOD::setPatientComments(const OFString &value, const OFBool } +OFCondition DRTImageIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4765,6 +5219,15 @@ OFCondition DRTImageIOD::setPatientSpeciesDescription(const OFString &value, con } +OFCondition DRTImageIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientSupportAngle(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -4927,6 +5390,12 @@ OFCondition DRTImageIOD::setPreferredPlaybackSequencing(const Uint16 value, cons } +OFCondition DRTImageIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTImageIOD::setPresentationLUTShape(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -5344,6 +5813,15 @@ OFCondition DRTImageIOD::setSmallestImagePixelValue(const Uint16 value, const un } +OFCondition DRTImageIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -5425,6 +5903,33 @@ OFCondition DRTImageIOD::setStopTrim(const OFString &value, const OFBool check) } +OFCondition DRTImageIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtionpl.cc b/dcmrt/libsrc/drtionpl.cc index 52b22af2..3ba2f77a 100644 --- a/dcmrt/libsrc/drtionpl.cc +++ b/dcmrt/libsrc/drtionpl.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,6 +23,9 @@ DRTIonPlanIOD::DRTIonPlanIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTIonPlanIOD::DRTIonPlanIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTIonPlanIOD::DRTIonPlanIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTIonPlanIOD::DRTIonPlanIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTIonPlanIOD::DRTIonPlanIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -138,6 +159,7 @@ DRTIonPlanIOD::DRTIonPlanIOD() ReferencedStructureSetSequence(), ReferencedDoseSequence(), ReferencedRTPlanSequence(), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(DCM_PrescriptionDescription), DoseReferenceSequence(), IonToleranceTableSequence(), @@ -148,6 +170,12 @@ DRTIonPlanIOD::DRTIonPlanIOD() ReviewDate(DCM_ReviewDate), ReviewTime(DCM_ReviewTime), ReviewerName(DCM_ReviewerName), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -158,6 +186,8 @@ DRTIonPlanIOD::DRTIonPlanIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -188,6 +218,9 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -203,12 +236,19 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -242,7 +282,16 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -262,6 +311,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -286,6 +336,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -303,6 +354,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence), ReferencedDoseSequence(copy.ReferencedDoseSequence), ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(copy.PrescriptionDescription), DoseReferenceSequence(copy.DoseReferenceSequence), IonToleranceTableSequence(copy.IonToleranceTableSequence), @@ -313,6 +365,12 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) ReviewDate(copy.ReviewDate), ReviewTime(copy.ReviewTime), ReviewerName(copy.ReviewerName), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -323,6 +381,8 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -359,6 +419,9 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -374,12 +437,19 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -413,7 +483,16 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -433,6 +512,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -457,6 +537,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -474,6 +555,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence; ReferencedDoseSequence = copy.ReferencedDoseSequence; ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence; + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; PrescriptionDescription = copy.PrescriptionDescription; DoseReferenceSequence = copy.DoseReferenceSequence; IonToleranceTableSequence = copy.IonToleranceTableSequence; @@ -484,6 +566,12 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) ReviewDate = copy.ReviewDate; ReviewTime = copy.ReviewTime; ReviewerName = copy.ReviewerName; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -494,6 +582,8 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -525,6 +615,9 @@ void DRTIonPlanIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -540,12 +633,19 @@ void DRTIonPlanIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -579,7 +679,16 @@ void DRTIonPlanIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -599,6 +708,7 @@ void DRTIonPlanIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -623,6 +733,7 @@ void DRTIonPlanIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -640,6 +751,7 @@ void DRTIonPlanIOD::clear() ReferencedStructureSetSequence.clear(); ReferencedDoseSequence.clear(); ReferencedRTPlanSequence.clear(); + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear(); PrescriptionDescription.clear(); DoseReferenceSequence.clear(); IonToleranceTableSequence.clear(); @@ -650,6 +762,12 @@ void DRTIonPlanIOD::clear() ReviewDate.clear(); ReviewTime.clear(); ReviewerName.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -660,6 +778,8 @@ void DRTIonPlanIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -739,6 +859,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -758,6 +879,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule"); ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); + getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule"); @@ -796,6 +918,14 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -807,6 +937,8 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -843,6 +975,9 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -858,12 +993,19 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -919,7 +1061,16 @@ OFCondition DRTIonPlanIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -956,6 +1107,7 @@ OFCondition DRTIonPlanIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -994,6 +1146,9 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1009,12 +1164,19 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1059,7 +1221,16 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1087,6 +1258,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1120,6 +1292,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1139,6 +1312,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule"); if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); + addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- if (isRTPrescriptionModulePresent(OFFalse /*complete*/)) @@ -1180,6 +1354,17 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1191,6 +1376,8 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1251,7 +1438,16 @@ OFBool DRTIonPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1333,6 +1529,18 @@ OFBool DRTIonPlanIOD::isApprovalModulePresent(const OFBool complete) } +OFBool DRTIonPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTIonPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1365,6 +1573,12 @@ OFCondition DRTIonPlanIOD::getAdmittingDiagnosesDescription(OFString &value, con } +OFCondition DRTIonPlanIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTIonPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -1491,6 +1705,12 @@ OFCondition DRTIonPlanIOD::getDeidentificationMethod(OFString &value, const sign } +OFCondition DRTIonPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTIonPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1503,6 +1723,12 @@ OFCondition DRTIonPlanIOD::getEthnicGroup(OFString &value, const signed long pos } +OFCondition DRTIonPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos); +} + + OFCondition DRTIonPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const { return getStringValueFromElement(FrameOfReferenceUID, value, pos); @@ -1575,6 +1801,12 @@ OFCondition DRTIonPlanIOD::getIssuerOfPatientID(OFString &value, const signed lo } +OFCondition DRTIonPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTIonPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1593,6 +1825,36 @@ OFCondition DRTIonPlanIOD::getManufacturerModelName(OFString &value, const signe } +OFCondition DRTIonPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTIonPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTIonPlanIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1641,18 +1903,42 @@ OFCondition DRTIonPlanIOD::getPatientAge(OFString &value, const signed long pos) } +OFCondition DRTIonPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTIonPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1665,6 +1951,12 @@ OFCondition DRTIonPlanIOD::getPatientComments(OFString &value, const signed long } +OFCondition DRTIonPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1713,6 +2005,12 @@ OFCondition DRTIonPlanIOD::getPatientSpeciesDescription(OFString &value, const s } +OFCondition DRTIonPlanIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1785,6 +2083,12 @@ OFCondition DRTIonPlanIOD::getPositionReferenceIndicator(OFString &value, const } +OFCondition DRTIonPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTIonPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PrescriptionDescription, value, pos); @@ -1965,6 +2269,12 @@ OFCondition DRTIonPlanIOD::getServiceEpisodeID(OFString &value, const signed lon } +OFCondition DRTIonPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTIonPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1995,6 +2305,24 @@ OFCondition DRTIonPlanIOD::getStationName(OFString &value, const signed long pos } +OFCondition DRTIonPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTIonPlanIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTIonPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTIonPlanIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -2085,6 +2413,15 @@ OFCondition DRTIonPlanIOD::setAdmittingDiagnosesDescription(const OFString &valu } +OFCondition DRTIonPlanIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2274,6 +2611,15 @@ OFCondition DRTIonPlanIOD::setDeidentificationMethod(const OFString &value, cons } +OFCondition DRTIonPlanIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2292,6 +2638,12 @@ OFCondition DRTIonPlanIOD::setEthnicGroup(const OFString &value, const OFBool ch } +OFCondition DRTIonPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos) +{ + return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos); +} + + OFCondition DRTIonPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; @@ -2391,6 +2743,15 @@ OFCondition DRTIonPlanIOD::setIssuerOfPatientID(const OFString &value, const OFB } +OFCondition DRTIonPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2418,6 +2779,33 @@ OFCondition DRTIonPlanIOD::setManufacturerModelName(const OFString &value, const } +OFCondition DRTIonPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2490,6 +2878,15 @@ OFCondition DRTIonPlanIOD::setPatientAge(const OFString &value, const OFBool che } +OFCondition DRTIonPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2499,6 +2896,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBo } +OFCondition DRTIonPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2508,6 +2914,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBo } +OFCondition DRTIonPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2526,6 +2941,15 @@ OFCondition DRTIonPlanIOD::setPatientComments(const OFString &value, const OFBoo } +OFCondition DRTIonPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2589,6 +3013,15 @@ OFCondition DRTIonPlanIOD::setPatientSpeciesDescription(const OFString &value, c } +OFCondition DRTIonPlanIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2685,6 +3118,12 @@ OFCondition DRTIonPlanIOD::setPositionReferenceIndicator(const OFString &value, } +OFCondition DRTIonPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTIonPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; @@ -2946,6 +3385,15 @@ OFCondition DRTIonPlanIOD::setServiceEpisodeID(const OFString &value, const OFBo } +OFCondition DRTIonPlanIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2982,6 +3430,33 @@ OFCondition DRTIonPlanIOD::setStationName(const OFString &value, const OFBool ch } +OFCondition DRTIonPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtiontr.cc b/dcmrt/libsrc/drtiontr.cc index ec5bf4d9..138cc966 100644 --- a/dcmrt/libsrc/drtiontr.cc +++ b/dcmrt/libsrc/drtiontr.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBeamsTreatmentRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,6 +23,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -80,7 +90,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -119,6 +139,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -143,6 +164,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() FractionGroupSummarySequence(), TreatmentSummaryMeasuredDoseReferenceSequence(), TreatmentSummaryCalculatedDoseReferenceSequence(), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -153,6 +180,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -183,6 +212,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -198,12 +230,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -240,7 +279,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -257,6 +305,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -279,6 +328,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -303,6 +353,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr FractionGroupSummarySequence(copy.FractionGroupSummarySequence), TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence), TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -313,6 +369,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -349,6 +407,9 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -364,12 +425,19 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -406,7 +474,16 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -423,6 +500,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -445,6 +523,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -469,6 +548,12 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR FractionGroupSummarySequence = copy.FractionGroupSummarySequence; TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence; TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -479,6 +564,8 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -510,6 +597,9 @@ void DRTIonBeamsTreatmentRecordIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -525,12 +615,19 @@ void DRTIonBeamsTreatmentRecordIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -567,7 +664,16 @@ void DRTIonBeamsTreatmentRecordIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -584,6 +690,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -606,6 +713,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -630,6 +738,12 @@ void DRTIonBeamsTreatmentRecordIOD::clear() FractionGroupSummarySequence.clear(); TreatmentSummaryMeasuredDoseReferenceSequence.clear(); TreatmentSummaryCalculatedDoseReferenceSequence.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -640,6 +754,8 @@ void DRTIonBeamsTreatmentRecordIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -715,6 +831,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -768,6 +885,14 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset) TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -779,6 +904,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -815,6 +942,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -830,12 +960,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -899,7 +1036,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -928,6 +1074,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -966,6 +1113,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -981,12 +1131,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1039,7 +1196,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1059,6 +1225,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1088,6 +1255,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1139,6 +1307,17 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1150,6 +1329,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1219,7 +1400,16 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isPatientStudyModulePresent(const OFBool / !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1280,6 +1470,18 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isRTTreatmentSummaryRecordModulePresent(co } +OFBool DRTIonBeamsTreatmentRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTIonBeamsTreatmentRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1312,6 +1514,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getAdmittingDiagnosesDescription(OFSt } +OFCondition DRTIonBeamsTreatmentRecordIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos); @@ -1438,6 +1646,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getDeidentificationMethod(OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1522,6 +1736,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getIssuerOfPatientID(OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1540,6 +1760,36 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getManufacturerModelName(OFString &va } +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1606,18 +1856,42 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAge(OFString &value, const } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1630,6 +1904,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientComments(OFString &value, c } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1678,6 +1958,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientSpeciesDescription(OFString } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1738,6 +2024,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPixelPaddingValue(Uint16 &value, c } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPrimaryDosimeterUnit(OFString &value, const signed long pos) const { return getStringValueFromElement(PrimaryDosimeterUnit, value, pos); @@ -1876,6 +2168,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getServiceEpisodeID(OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1906,6 +2204,24 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getStationName(OFString &value, const } +OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -2002,6 +2318,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setAdmittingDiagnosesDescription(cons } +OFCondition DRTIonBeamsTreatmentRecordIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2191,6 +2516,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setDeidentificationMethod(const OFStr } +OFCondition DRTIonBeamsTreatmentRecordIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2308,6 +2642,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setIssuerOfPatientID(const OFString & } +OFCondition DRTIonBeamsTreatmentRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2335,6 +2678,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setManufacturerModelName(const OFStri } +OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2425,6 +2795,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAge(const OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2434,6 +2813,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2443,6 +2831,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2461,6 +2858,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientComments(const OFString &va } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2524,6 +2930,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientSpeciesDescription(const OF } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2602,6 +3017,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPixelPaddingValue(const Uint16 val } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPrimaryDosimeterUnit(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2791,6 +3212,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setServiceEpisodeID(const OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2827,6 +3257,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setStationName(const OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtipiqs.cc b/dcmrt/libsrc/drtipiqs.cc index 25a3869d..a8f70b04 100644 --- a/dcmrt/libsrc/drtipiqs.cc +++ b/dcmrt/libsrc/drtipiqs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfPatientIDQualifiersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -301,7 +301,7 @@ OFBool DRTIssuerOfPatientIDQualifiersSequence::isValid() const } -unsigned long DRTIssuerOfPatientIDQualifiersSequence::getNumberOfItems() const +size_t DRTIssuerOfPatientIDQualifiersSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -331,12 +331,12 @@ OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoNextItem() } -OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -351,12 +351,12 @@ OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const unsigned long } -OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -371,7 +371,7 @@ OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const unsigned long } -OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const unsigned long num) +OFCondition DRTIssuerOfPatientIDQualifiersSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -407,7 +407,7 @@ const DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifie } -OFCondition DRTIssuerOfPatientIDQualifiersSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIssuerOfPatientIDQualifiersSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -417,7 +417,7 @@ OFCondition DRTIssuerOfPatientIDQualifiersSequence::getItem(const unsigned long } -DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::getItem(const unsigned long num) +DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -427,7 +427,7 @@ DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequ } -const DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::getItem(const unsigned long num) const +const DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -437,13 +437,13 @@ const DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifie } -DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::operator[](const unsigned long num) +DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::operator[](const size_t num) { return getItem(num); } -const DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::operator[](const unsigned long num) const +const DRTIssuerOfPatientIDQualifiersSequence::Item &DRTIssuerOfPatientIDQualifiersSequence::operator[](const size_t num) const { return getItem(num); } @@ -466,7 +466,7 @@ OFCondition DRTIssuerOfPatientIDQualifiersSequence::addItem(Item *&item) } -OFCondition DRTIssuerOfPatientIDQualifiersSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIssuerOfPatientIDQualifiersSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -489,7 +489,7 @@ OFCondition DRTIssuerOfPatientIDQualifiersSequence::insertItem(const unsigned lo } -OFCondition DRTIssuerOfPatientIDQualifiersSequence::removeItem(const unsigned long pos) +OFCondition DRTIssuerOfPatientIDQualifiersSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtircs.cc b/dcmrt/libsrc/drtircs.cc index e79d28cb..b8d7dbfe 100644 --- a/dcmrt/libsrc/drtircs.cc +++ b/dcmrt/libsrc/drtircs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonRangeCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -747,7 +747,7 @@ OFBool DRTIonRangeCompensatorSequence::isValid() const } -unsigned long DRTIonRangeCompensatorSequence::getNumberOfItems() const +size_t DRTIonRangeCompensatorSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -777,12 +777,12 @@ OFCondition DRTIonRangeCompensatorSequence::gotoNextItem() } -OFCondition DRTIonRangeCompensatorSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonRangeCompensatorSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -797,12 +797,12 @@ OFCondition DRTIonRangeCompensatorSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTIonRangeCompensatorSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonRangeCompensatorSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -817,7 +817,7 @@ OFCondition DRTIonRangeCompensatorSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTIonRangeCompensatorSequence::gotoItem(const unsigned long num) +OFCondition DRTIonRangeCompensatorSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -853,7 +853,7 @@ const DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::getC } -OFCondition DRTIonRangeCompensatorSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonRangeCompensatorSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -863,7 +863,7 @@ OFCondition DRTIonRangeCompensatorSequence::getItem(const unsigned long num, Ite } -DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::getItem(const unsigned long num) +DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -873,7 +873,7 @@ DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::getItem(co } -const DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::getItem(const unsigned long num) const +const DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -883,13 +883,13 @@ const DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::getI } -DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::operator[](const unsigned long num) +DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::operator[](const unsigned long num) const +const DRTIonRangeCompensatorSequence::Item &DRTIonRangeCompensatorSequence::operator[](const size_t num) const { return getItem(num); } @@ -912,7 +912,7 @@ OFCondition DRTIonRangeCompensatorSequence::addItem(Item *&item) } -OFCondition DRTIonRangeCompensatorSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonRangeCompensatorSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -935,7 +935,7 @@ OFCondition DRTIonRangeCompensatorSequence::insertItem(const unsigned long pos, } -OFCondition DRTIonRangeCompensatorSequence::removeItem(const unsigned long pos) +OFCondition DRTIonRangeCompensatorSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtiseis.cc b/dcmrt/libsrc/drtiseis.cc index eb40d2e4..371e9911 100644 --- a/dcmrt/libsrc/drtiseis.cc +++ b/dcmrt/libsrc/drtiseis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfServiceEpisodeIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -280,7 +280,7 @@ OFBool DRTIssuerOfServiceEpisodeIDSequence::isValid() const } -unsigned long DRTIssuerOfServiceEpisodeIDSequence::getNumberOfItems() const +size_t DRTIssuerOfServiceEpisodeIDSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -310,12 +310,12 @@ OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoNextItem() } -OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,12 +330,12 @@ OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const unsigned long nu } -OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -350,7 +350,7 @@ OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const unsigned long nu } -OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const unsigned long num) +OFCondition DRTIssuerOfServiceEpisodeIDSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -386,7 +386,7 @@ const DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequ } -OFCondition DRTIssuerOfServiceEpisodeIDSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIssuerOfServiceEpisodeIDSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -396,7 +396,7 @@ OFCondition DRTIssuerOfServiceEpisodeIDSequence::getItem(const unsigned long num } -DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::getItem(const unsigned long num) +DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -406,7 +406,7 @@ DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence:: } -const DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::getItem(const unsigned long num) const +const DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -416,13 +416,13 @@ const DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequ } -DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::operator[](const unsigned long num) +DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::operator[](const size_t num) { return getItem(num); } -const DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::operator[](const unsigned long num) const +const DRTIssuerOfServiceEpisodeIDSequence::Item &DRTIssuerOfServiceEpisodeIDSequence::operator[](const size_t num) const { return getItem(num); } @@ -445,7 +445,7 @@ OFCondition DRTIssuerOfServiceEpisodeIDSequence::addItem(Item *&item) } -OFCondition DRTIssuerOfServiceEpisodeIDSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIssuerOfServiceEpisodeIDSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -468,7 +468,7 @@ OFCondition DRTIssuerOfServiceEpisodeIDSequence::insertItem(const unsigned long } -OFCondition DRTIssuerOfServiceEpisodeIDSequence::removeItem(const unsigned long pos) +OFCondition DRTIssuerOfServiceEpisodeIDSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtitts.cc b/dcmrt/libsrc/drtitts.cc index 32d02c1a..ed232a75 100644 --- a/dcmrt/libsrc/drtitts.cc +++ b/dcmrt/libsrc/drtitts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,7 +23,11 @@ DRTIonToleranceTableSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), BeamLimitingDeviceAngleTolerance(DCM_BeamLimitingDeviceAngleTolerance), BeamLimitingDeviceToleranceSequence(emptyDefaultItem /*emptyDefaultSequence*/), + ChairHeadFramePositionTolerance(DCM_ChairHeadFramePositionTolerance), + FixationLightAzimuthalAngleTolerance(DCM_FixationLightAzimuthalAngleTolerance), + FixationLightPolarAngleTolerance(DCM_FixationLightPolarAngleTolerance), GantryAngleTolerance(DCM_GantryAngleTolerance), + HeadFixationAngleTolerance(DCM_HeadFixationAngleTolerance), PatientSupportAngleTolerance(DCM_PatientSupportAngleTolerance), SnoutPositionTolerance(DCM_SnoutPositionTolerance), TableTopLateralPositionTolerance(DCM_TableTopLateralPositionTolerance), @@ -41,7 +45,11 @@ DRTIonToleranceTableSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), BeamLimitingDeviceAngleTolerance(copy.BeamLimitingDeviceAngleTolerance), BeamLimitingDeviceToleranceSequence(copy.BeamLimitingDeviceToleranceSequence), + ChairHeadFramePositionTolerance(copy.ChairHeadFramePositionTolerance), + FixationLightAzimuthalAngleTolerance(copy.FixationLightAzimuthalAngleTolerance), + FixationLightPolarAngleTolerance(copy.FixationLightPolarAngleTolerance), GantryAngleTolerance(copy.GantryAngleTolerance), + HeadFixationAngleTolerance(copy.HeadFixationAngleTolerance), PatientSupportAngleTolerance(copy.PatientSupportAngleTolerance), SnoutPositionTolerance(copy.SnoutPositionTolerance), TableTopLateralPositionTolerance(copy.TableTopLateralPositionTolerance), @@ -67,7 +75,11 @@ DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::Item::operator EmptyDefaultItem = copy.EmptyDefaultItem; BeamLimitingDeviceAngleTolerance = copy.BeamLimitingDeviceAngleTolerance; BeamLimitingDeviceToleranceSequence = copy.BeamLimitingDeviceToleranceSequence; + ChairHeadFramePositionTolerance = copy.ChairHeadFramePositionTolerance; + FixationLightAzimuthalAngleTolerance = copy.FixationLightAzimuthalAngleTolerance; + FixationLightPolarAngleTolerance = copy.FixationLightPolarAngleTolerance; GantryAngleTolerance = copy.GantryAngleTolerance; + HeadFixationAngleTolerance = copy.HeadFixationAngleTolerance; PatientSupportAngleTolerance = copy.PatientSupportAngleTolerance; SnoutPositionTolerance = copy.SnoutPositionTolerance; TableTopLateralPositionTolerance = copy.TableTopLateralPositionTolerance; @@ -99,6 +111,10 @@ void DRTIonToleranceTableSequence::Item::clear() TableTopPitchAngleTolerance.clear(); TableTopRollAngleTolerance.clear(); SnoutPositionTolerance.clear(); + HeadFixationAngleTolerance.clear(); + ChairHeadFramePositionTolerance.clear(); + FixationLightAzimuthalAngleTolerance.clear(); + FixationLightPolarAngleTolerance.clear(); } } @@ -116,7 +132,11 @@ OFBool DRTIonToleranceTableSequence::Item::isEmpty() TableTopLateralPositionTolerance.isEmpty() && TableTopPitchAngleTolerance.isEmpty() && TableTopRollAngleTolerance.isEmpty() && - SnoutPositionTolerance.isEmpty(); + SnoutPositionTolerance.isEmpty() && + HeadFixationAngleTolerance.isEmpty() && + ChairHeadFramePositionTolerance.isEmpty() && + FixationLightAzimuthalAngleTolerance.isEmpty() && + FixationLightPolarAngleTolerance.isEmpty(); } @@ -145,6 +165,10 @@ OFCondition DRTIonToleranceTableSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, TableTopPitchAngleTolerance, "1", "3", "IonToleranceTableSequence"); getAndCheckElementFromDataset(item, TableTopRollAngleTolerance, "1", "3", "IonToleranceTableSequence"); getAndCheckElementFromDataset(item, SnoutPositionTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, HeadFixationAngleTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, ChairHeadFramePositionTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, FixationLightAzimuthalAngleTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, FixationLightPolarAngleTolerance, "1", "3", "IonToleranceTableSequence"); result = EC_Normal; } return result; @@ -169,6 +193,10 @@ OFCondition DRTIonToleranceTableSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngleTolerance), "1", "3", "IonToleranceTableSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngleTolerance), "1", "3", "IonToleranceTableSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(SnoutPositionTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(HeadFixationAngleTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePositionTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(FixationLightAzimuthalAngleTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(FixationLightPolarAngleTolerance), "1", "3", "IonToleranceTableSequence"); } return result; } @@ -192,6 +220,60 @@ OFCondition DRTIonToleranceTableSequence::Item::getBeamLimitingDeviceAngleTolera } +OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ChairHeadFramePositionTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, ChairHeadFramePositionTolerance).getFloat64(value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationLightAzimuthalAngleTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, FixationLightAzimuthalAngleTolerance).getFloat64(value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationLightPolarAngleTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, FixationLightPolarAngleTolerance).getFloat64(value, pos); +} + + OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -210,6 +292,24 @@ OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(Float64 } +OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(HeadFixationAngleTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, HeadFixationAngleTolerance).getFloat64(value, pos); +} + + OFCondition DRTIonToleranceTableSequence::Item::getPatientSupportAngleTolerance(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -349,6 +449,45 @@ OFCondition DRTIonToleranceTableSequence::Item::setBeamLimitingDeviceAngleTolera } +OFCondition DRTIonToleranceTableSequence::Item::setChairHeadFramePositionTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ChairHeadFramePositionTolerance.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTIonToleranceTableSequence::Item::setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationLightAzimuthalAngleTolerance.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTIonToleranceTableSequence::Item::setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationLightPolarAngleTolerance.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -362,6 +501,19 @@ OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OF } +OFCondition DRTIonToleranceTableSequence::Item::setHeadFixationAngleTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = HeadFixationAngleTolerance.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonToleranceTableSequence::Item::setPatientSupportAngleTolerance(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -570,7 +722,7 @@ OFBool DRTIonToleranceTableSequence::isValid() const } -unsigned long DRTIonToleranceTableSequence::getNumberOfItems() const +size_t DRTIonToleranceTableSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -600,12 +752,12 @@ OFCondition DRTIonToleranceTableSequence::gotoNextItem() } -OFCondition DRTIonToleranceTableSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonToleranceTableSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -620,12 +772,12 @@ OFCondition DRTIonToleranceTableSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTIonToleranceTableSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonToleranceTableSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -640,7 +792,7 @@ OFCondition DRTIonToleranceTableSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTIonToleranceTableSequence::gotoItem(const unsigned long num) +OFCondition DRTIonToleranceTableSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -676,7 +828,7 @@ const DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::getCurre } -OFCondition DRTIonToleranceTableSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonToleranceTableSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -686,7 +838,7 @@ OFCondition DRTIonToleranceTableSequence::getItem(const unsigned long num, Item } -DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::getItem(const unsigned long num) +DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -696,7 +848,7 @@ DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::getItem(const } -const DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::getItem(const unsigned long num) const +const DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -706,13 +858,13 @@ const DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::getItem( } -DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::operator[](const unsigned long num) +DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::operator[](const unsigned long num) const +const DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::operator[](const size_t num) const { return getItem(num); } @@ -735,7 +887,7 @@ OFCondition DRTIonToleranceTableSequence::addItem(Item *&item) } -OFCondition DRTIonToleranceTableSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonToleranceTableSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -758,7 +910,7 @@ OFCondition DRTIonToleranceTableSequence::insertItem(const unsigned long pos, It } -OFCondition DRTIonToleranceTableSequence::removeItem(const unsigned long pos) +OFCondition DRTIonToleranceTableSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtiwps.cc b/dcmrt/libsrc/drtiwps.cc index 0501b4b9..ae30e17d 100644 --- a/dcmrt/libsrc/drtiwps.cc +++ b/dcmrt/libsrc/drtiwps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -285,7 +285,7 @@ OFBool DRTIonWedgePositionSequence::isValid() const } -unsigned long DRTIonWedgePositionSequence::getNumberOfItems() const +size_t DRTIonWedgePositionSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -315,12 +315,12 @@ OFCondition DRTIonWedgePositionSequence::gotoNextItem() } -OFCondition DRTIonWedgePositionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonWedgePositionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -335,12 +335,12 @@ OFCondition DRTIonWedgePositionSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTIonWedgePositionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonWedgePositionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -355,7 +355,7 @@ OFCondition DRTIonWedgePositionSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTIonWedgePositionSequence::gotoItem(const unsigned long num) +OFCondition DRTIonWedgePositionSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -391,7 +391,7 @@ const DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::getCurrent } -OFCondition DRTIonWedgePositionSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonWedgePositionSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -401,7 +401,7 @@ OFCondition DRTIonWedgePositionSequence::getItem(const unsigned long num, Item * } -DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::getItem(const unsigned long num) +DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -411,7 +411,7 @@ DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::getItem(const un } -const DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::getItem(const unsigned long num) const +const DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -421,13 +421,13 @@ const DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::getItem(co } -DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::operator[](const unsigned long num) +DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::operator[](const unsigned long num) const +const DRTIonWedgePositionSequence::Item &DRTIonWedgePositionSequence::operator[](const size_t num) const { return getItem(num); } @@ -450,7 +450,7 @@ OFCondition DRTIonWedgePositionSequence::addItem(Item *&item) } -OFCondition DRTIonWedgePositionSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonWedgePositionSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -473,7 +473,7 @@ OFCondition DRTIonWedgePositionSequence::insertItem(const unsigned long pos, Ite } -OFCondition DRTIonWedgePositionSequence::removeItem(const unsigned long pos) +OFCondition DRTIonWedgePositionSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtiws.cc b/dcmrt/libsrc/drtiws.cc index 66ec2a87..cc2af360 100644 --- a/dcmrt/libsrc/drtiws.cc +++ b/dcmrt/libsrc/drtiws.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -419,7 +419,7 @@ OFBool DRTIonWedgeSequence::isValid() const } -unsigned long DRTIonWedgeSequence::getNumberOfItems() const +size_t DRTIonWedgeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -449,12 +449,12 @@ OFCondition DRTIonWedgeSequence::gotoNextItem() } -OFCondition DRTIonWedgeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTIonWedgeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -469,12 +469,12 @@ OFCondition DRTIonWedgeSequence::gotoItem(const unsigned long num, OFListIterato } -OFCondition DRTIonWedgeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTIonWedgeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -489,7 +489,7 @@ OFCondition DRTIonWedgeSequence::gotoItem(const unsigned long num, OFListConstIt } -OFCondition DRTIonWedgeSequence::gotoItem(const unsigned long num) +OFCondition DRTIonWedgeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -525,7 +525,7 @@ const DRTIonWedgeSequence::Item &DRTIonWedgeSequence::getCurrentItem() const } -OFCondition DRTIonWedgeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTIonWedgeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -535,7 +535,7 @@ OFCondition DRTIonWedgeSequence::getItem(const unsigned long num, Item *&item) } -DRTIonWedgeSequence::Item &DRTIonWedgeSequence::getItem(const unsigned long num) +DRTIonWedgeSequence::Item &DRTIonWedgeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -545,7 +545,7 @@ DRTIonWedgeSequence::Item &DRTIonWedgeSequence::getItem(const unsigned long num) } -const DRTIonWedgeSequence::Item &DRTIonWedgeSequence::getItem(const unsigned long num) const +const DRTIonWedgeSequence::Item &DRTIonWedgeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -555,13 +555,13 @@ const DRTIonWedgeSequence::Item &DRTIonWedgeSequence::getItem(const unsigned lon } -DRTIonWedgeSequence::Item &DRTIonWedgeSequence::operator[](const unsigned long num) +DRTIonWedgeSequence::Item &DRTIonWedgeSequence::operator[](const size_t num) { return getItem(num); } -const DRTIonWedgeSequence::Item &DRTIonWedgeSequence::operator[](const unsigned long num) const +const DRTIonWedgeSequence::Item &DRTIonWedgeSequence::operator[](const size_t num) const { return getItem(num); } @@ -584,7 +584,7 @@ OFCondition DRTIonWedgeSequence::addItem(Item *&item) } -OFCondition DRTIonWedgeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTIonWedgeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -607,7 +607,7 @@ OFCondition DRTIonWedgeSequence::insertItem(const unsigned long pos, Item *&item } -OFCondition DRTIonWedgeSequence::removeItem(const unsigned long pos) +OFCondition DRTIonWedgeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtlsds.cc b/dcmrt/libsrc/drtlsds.cc index c6ee742f..36bf35de 100644 --- a/dcmrt/libsrc/drtlsds.cc +++ b/dcmrt/libsrc/drtlsds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -347,7 +347,7 @@ OFBool DRTLateralSpreadingDeviceSequence::isValid() const } -unsigned long DRTLateralSpreadingDeviceSequence::getNumberOfItems() const +size_t DRTLateralSpreadingDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -377,12 +377,12 @@ OFCondition DRTLateralSpreadingDeviceSequence::gotoNextItem() } -OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -397,12 +397,12 @@ OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const unsigned long num, } -OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -417,7 +417,7 @@ OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const unsigned long num, } -OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTLateralSpreadingDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -453,7 +453,7 @@ const DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence } -OFCondition DRTLateralSpreadingDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTLateralSpreadingDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -463,7 +463,7 @@ OFCondition DRTLateralSpreadingDeviceSequence::getItem(const unsigned long num, } -DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::getItem(const unsigned long num) +DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -473,7 +473,7 @@ DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::getI } -const DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::getItem(const unsigned long num) const +const DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -483,13 +483,13 @@ const DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence } -DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::operator[](const unsigned long num) +DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::operator[](const unsigned long num) const +const DRTLateralSpreadingDeviceSequence::Item &DRTLateralSpreadingDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -512,7 +512,7 @@ OFCondition DRTLateralSpreadingDeviceSequence::addItem(Item *&item) } -OFCondition DRTLateralSpreadingDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTLateralSpreadingDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -535,7 +535,7 @@ OFCondition DRTLateralSpreadingDeviceSequence::insertItem(const unsigned long po } -OFCondition DRTLateralSpreadingDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTLateralSpreadingDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtlsds6.cc b/dcmrt/libsrc/drtlsds6.cc index 77f8ba1e..24019c5b 100644 --- a/dcmrt/libsrc/drtlsds6.cc +++ b/dcmrt/libsrc/drtlsds6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -310,7 +310,7 @@ OFBool DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::isValid() co } -unsigned long DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -340,12 +340,12 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoNex } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -360,12 +360,12 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoIte } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -380,7 +380,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoIte } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -416,7 +416,7 @@ const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLate } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -426,7 +426,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getItem } -DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -436,7 +436,7 @@ DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpr } -const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -446,13 +446,13 @@ const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLate } -DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -475,7 +475,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::addItem } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -498,7 +498,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::insertI } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtlsds7.cc b/dcmrt/libsrc/drtlsds7.cc index 6d236c56..845ceef7 100644 --- a/dcmrt/libsrc/drtlsds7.cc +++ b/dcmrt/libsrc/drtlsds7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule: } -unsigned long DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const +size_t DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordMo } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordMo } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordMo } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule:: } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordMo } -DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) +DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item & } -const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) const +const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule:: } -DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) +DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) const +const DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordMo } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordMo } -OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::removeItem(const unsigned long pos) +OFCondition DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtmacds.cc b/dcmrt/libsrc/drtmacds.cc index ddbda955..879117f6 100644 --- a/dcmrt/libsrc/drtmacds.cc +++ b/dcmrt/libsrc/drtmacds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -267,7 +267,7 @@ OFBool DRTMultiplexedAudioChannelsDescriptionCodeSequence::isValid() const } -unsigned long DRTMultiplexedAudioChannelsDescriptionCodeSequence::getNumberOfItems() const +size_t DRTMultiplexedAudioChannelsDescriptionCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -297,12 +297,12 @@ OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoNextItem() } -OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -317,12 +317,12 @@ OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const u } -OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -337,7 +337,7 @@ OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const u } -OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -373,7 +373,7 @@ const DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAu } -OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -383,7 +383,7 @@ OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::getItem(const un } -DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::getItem(const unsigned long num) +DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -393,7 +393,7 @@ DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioCha } -const DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::getItem(const unsigned long num) const +const DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -403,13 +403,13 @@ const DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAu } -DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::operator[](const unsigned long num) +DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::operator[](const unsigned long num) const +const DRTMultiplexedAudioChannelsDescriptionCodeSequence::Item &DRTMultiplexedAudioChannelsDescriptionCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -432,7 +432,7 @@ OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::addItem(Item *&i } -OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -455,7 +455,7 @@ OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::insertItem(const } -OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTMultiplexedAudioChannelsDescriptionCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtmas.cc b/dcmrt/libsrc/drtmas.cc index 369b0c6e..cff79f8a 100644 --- a/dcmrt/libsrc/drtmas.cc +++ b/dcmrt/libsrc/drtmas.cc @@ -1,14 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTModifiedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 - * Last modified on 2016-02-05 by Riesmeier + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -68,27 +67,29 @@ OFBool DRTModifiedAttributesSequence::Item::isValid() const } -OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem & /*item*/) +OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem &item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) { /* re-initialize object */ clear(); - /* manual comment: nothing to do */ - result = EC_Normal; + /* avoid compiler warning on unused parameter */ + (void)item; + result = EC_NotYetImplemented; } return result; } -OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem & /*item*/) +OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem &item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) { - /* manual comment: nothing to do */ - result = EC_Normal; + /* avoid compiler warning on unused parameter */ + (void)item; + result = EC_NotYetImplemented; } return result; } @@ -197,7 +198,7 @@ OFBool DRTModifiedAttributesSequence::isValid() const } -unsigned long DRTModifiedAttributesSequence::getNumberOfItems() const +size_t DRTModifiedAttributesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -227,12 +228,12 @@ OFCondition DRTModifiedAttributesSequence::gotoNextItem() } -OFCondition DRTModifiedAttributesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTModifiedAttributesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -247,12 +248,12 @@ OFCondition DRTModifiedAttributesSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTModifiedAttributesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTModifiedAttributesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -267,7 +268,7 @@ OFCondition DRTModifiedAttributesSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTModifiedAttributesSequence::gotoItem(const unsigned long num) +OFCondition DRTModifiedAttributesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -303,7 +304,7 @@ const DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::getCur } -OFCondition DRTModifiedAttributesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTModifiedAttributesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -313,7 +314,7 @@ OFCondition DRTModifiedAttributesSequence::getItem(const unsigned long num, Item } -DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::getItem(const unsigned long num) +DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -323,7 +324,7 @@ DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::getItem(cons } -const DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::getItem(const unsigned long num) const +const DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -333,13 +334,13 @@ const DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::getIte } -DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::operator[](const unsigned long num) +DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::operator[](const size_t num) { return getItem(num); } -const DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::operator[](const unsigned long num) const +const DRTModifiedAttributesSequence::Item &DRTModifiedAttributesSequence::operator[](const size_t num) const { return getItem(num); } @@ -362,7 +363,7 @@ OFCondition DRTModifiedAttributesSequence::addItem(Item *&item) } -OFCondition DRTModifiedAttributesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTModifiedAttributesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -385,7 +386,7 @@ OFCondition DRTModifiedAttributesSequence::insertItem(const unsigned long pos, I } -OFCondition DRTModifiedAttributesSequence::removeItem(const unsigned long pos) +OFCondition DRTModifiedAttributesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtmdrs.cc b/dcmrt/libsrc/drtmdrs.cc index bac8e3d6..14c54dab 100644 --- a/dcmrt/libsrc/drtmdrs.cc +++ b/dcmrt/libsrc/drtmdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -394,7 +394,7 @@ OFBool DRTMeasuredDoseReferenceSequence::isValid() const } -unsigned long DRTMeasuredDoseReferenceSequence::getNumberOfItems() const +size_t DRTMeasuredDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -424,12 +424,12 @@ OFCondition DRTMeasuredDoseReferenceSequence::gotoNextItem() } -OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -444,12 +444,12 @@ OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, } -OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -464,7 +464,7 @@ OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, } -OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTMeasuredDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -500,7 +500,7 @@ const DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence:: } -OFCondition DRTMeasuredDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTMeasuredDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -510,7 +510,7 @@ OFCondition DRTMeasuredDoseReferenceSequence::getItem(const unsigned long num, I } -DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::getItem(const unsigned long num) +DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -520,7 +520,7 @@ DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::getIte } -const DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::getItem(const unsigned long num) const +const DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -530,13 +530,13 @@ const DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence:: } -DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::operator[](const unsigned long num) +DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::operator[](const unsigned long num) const +const DRTMeasuredDoseReferenceSequence::Item &DRTMeasuredDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -559,7 +559,7 @@ OFCondition DRTMeasuredDoseReferenceSequence::addItem(Item *&item) } -OFCondition DRTMeasuredDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTMeasuredDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -582,7 +582,7 @@ OFCondition DRTMeasuredDoseReferenceSequence::insertItem(const unsigned long pos } -OFCondition DRTMeasuredDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTMeasuredDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtmls.cc b/dcmrt/libsrc/drtmls.cc index af627b04..c5c6047b 100644 --- a/dcmrt/libsrc/drtmls.cc +++ b/dcmrt/libsrc/drtmls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTModalityLUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -93,10 +93,10 @@ OFCondition DRTModalityLUTSequence::Item::read(DcmItem &item) { /* re-initialize object */ clear(); - getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1C", "ModalityLUTSequence"); + getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1", "ModalityLUTSequence"); getAndCheckElementFromDataset(item, LUTExplanation, "1", "3", "ModalityLUTSequence"); - getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1C", "ModalityLUTSequence"); - getAndCheckElementFromDataset(item, LUTData, "1-n", "1C", "ModalityLUTSequence"); + getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1", "ModalityLUTSequence"); + getAndCheckElementFromDataset(item, LUTData, "1-n", "1", "ModalityLUTSequence"); result = EC_Normal; } return result; @@ -109,10 +109,10 @@ OFCondition DRTModalityLUTSequence::Item::write(DcmItem &item) if (!EmptyDefaultItem) { result = EC_Normal; - addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1C", "ModalityLUTSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1", "ModalityLUTSequence"); addElementToDataset(result, item, new DcmLongString(LUTExplanation), "1", "3", "ModalityLUTSequence"); - addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1C", "ModalityLUTSequence"); - addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1C", "ModalityLUTSequence"); + addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1", "ModalityLUTSequence"); + addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1", "ModalityLUTSequence"); } return result; } @@ -311,7 +311,7 @@ OFBool DRTModalityLUTSequence::isValid() const } -unsigned long DRTModalityLUTSequence::getNumberOfItems() const +size_t DRTModalityLUTSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -341,12 +341,12 @@ OFCondition DRTModalityLUTSequence::gotoNextItem() } -OFCondition DRTModalityLUTSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTModalityLUTSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -361,12 +361,12 @@ OFCondition DRTModalityLUTSequence::gotoItem(const unsigned long num, OFListIter } -OFCondition DRTModalityLUTSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTModalityLUTSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -381,7 +381,7 @@ OFCondition DRTModalityLUTSequence::gotoItem(const unsigned long num, OFListCons } -OFCondition DRTModalityLUTSequence::gotoItem(const unsigned long num) +OFCondition DRTModalityLUTSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -417,7 +417,7 @@ const DRTModalityLUTSequence::Item &DRTModalityLUTSequence::getCurrentItem() con } -OFCondition DRTModalityLUTSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTModalityLUTSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -427,7 +427,7 @@ OFCondition DRTModalityLUTSequence::getItem(const unsigned long num, Item *&item } -DRTModalityLUTSequence::Item &DRTModalityLUTSequence::getItem(const unsigned long num) +DRTModalityLUTSequence::Item &DRTModalityLUTSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -437,7 +437,7 @@ DRTModalityLUTSequence::Item &DRTModalityLUTSequence::getItem(const unsigned lon } -const DRTModalityLUTSequence::Item &DRTModalityLUTSequence::getItem(const unsigned long num) const +const DRTModalityLUTSequence::Item &DRTModalityLUTSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -447,13 +447,13 @@ const DRTModalityLUTSequence::Item &DRTModalityLUTSequence::getItem(const unsign } -DRTModalityLUTSequence::Item &DRTModalityLUTSequence::operator[](const unsigned long num) +DRTModalityLUTSequence::Item &DRTModalityLUTSequence::operator[](const size_t num) { return getItem(num); } -const DRTModalityLUTSequence::Item &DRTModalityLUTSequence::operator[](const unsigned long num) const +const DRTModalityLUTSequence::Item &DRTModalityLUTSequence::operator[](const size_t num) const { return getItem(num); } @@ -476,7 +476,7 @@ OFCondition DRTModalityLUTSequence::addItem(Item *&item) } -OFCondition DRTModalityLUTSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTModalityLUTSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -499,7 +499,7 @@ OFCondition DRTModalityLUTSequence::insertItem(const unsigned long pos, Item *&i } -OFCondition DRTModalityLUTSequence::removeItem(const unsigned long pos) +OFCondition DRTModalityLUTSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtmps.cc b/dcmrt/libsrc/drtmps.cc index b48bfaa7..aefaf152 100644 --- a/dcmrt/libsrc/drtmps.cc +++ b/dcmrt/libsrc/drtmps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMACParametersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -305,7 +305,7 @@ OFBool DRTMACParametersSequence::isValid() const } -unsigned long DRTMACParametersSequence::getNumberOfItems() const +size_t DRTMACParametersSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -335,12 +335,12 @@ OFCondition DRTMACParametersSequence::gotoNextItem() } -OFCondition DRTMACParametersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTMACParametersSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -355,12 +355,12 @@ OFCondition DRTMACParametersSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTMACParametersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTMACParametersSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -375,7 +375,7 @@ OFCondition DRTMACParametersSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTMACParametersSequence::gotoItem(const unsigned long num) +OFCondition DRTMACParametersSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -411,7 +411,7 @@ const DRTMACParametersSequence::Item &DRTMACParametersSequence::getCurrentItem() } -OFCondition DRTMACParametersSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTMACParametersSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -421,7 +421,7 @@ OFCondition DRTMACParametersSequence::getItem(const unsigned long num, Item *&it } -DRTMACParametersSequence::Item &DRTMACParametersSequence::getItem(const unsigned long num) +DRTMACParametersSequence::Item &DRTMACParametersSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -431,7 +431,7 @@ DRTMACParametersSequence::Item &DRTMACParametersSequence::getItem(const unsigned } -const DRTMACParametersSequence::Item &DRTMACParametersSequence::getItem(const unsigned long num) const +const DRTMACParametersSequence::Item &DRTMACParametersSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -441,13 +441,13 @@ const DRTMACParametersSequence::Item &DRTMACParametersSequence::getItem(const un } -DRTMACParametersSequence::Item &DRTMACParametersSequence::operator[](const unsigned long num) +DRTMACParametersSequence::Item &DRTMACParametersSequence::operator[](const size_t num) { return getItem(num); } -const DRTMACParametersSequence::Item &DRTMACParametersSequence::operator[](const unsigned long num) const +const DRTMACParametersSequence::Item &DRTMACParametersSequence::operator[](const size_t num) const { return getItem(num); } @@ -470,7 +470,7 @@ OFCondition DRTMACParametersSequence::addItem(Item *&item) } -OFCondition DRTMACParametersSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTMACParametersSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -493,7 +493,7 @@ OFCondition DRTMACParametersSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTMACParametersSequence::removeItem(const unsigned long pos) +OFCondition DRTMACParametersSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtmris.cc b/dcmrt/libsrc/drtmris.cc new file mode 100644 index 00000000..e12c40bb --- /dev/null +++ b/dcmrt/libsrc/drtmris.cc @@ -0,0 +1,602 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTMappingResourceIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtmris.h" + + +// --- item class --- + +DRTMappingResourceIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID) +{ +} + + +DRTMappingResourceIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID) +{ +} + + +DRTMappingResourceIdentificationSequence::Item::~Item() +{ +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; + } + return *this; +} + + +void DRTMappingResourceIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + } +} + + +OFBool DRTMappingResourceIdentificationSequence::Item::isEmpty() +{ + return MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty(); +} + + +OFBool DRTMappingResourceIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, MappingResource, "1", "1", "MappingResourceIdentificationSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MappingResourceIdentificationSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MappingResourceIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "MappingResourceIdentificationSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MappingResourceIdentificationSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MappingResourceIdentificationSequence"); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTMappingResourceIdentificationSequence &DRTMappingResourceIdentificationSequence::operator=(const DRTMappingResourceIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTMappingResourceIdentificationSequence::~DRTMappingResourceIdentificationSequence() +{ + clear(); +} + + +void DRTMappingResourceIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTMappingResourceIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTMappingResourceIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTMappingResourceIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTMappingResourceIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTMappingResourceIdentificationSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTMappingResourceIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_MappingResourceIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_MappingResourceIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_MappingResourceIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtmss.cc b/dcmrt/libsrc/drtmss.cc index 8879fa6d..3e0bcd5c 100644 --- a/dcmrt/libsrc/drtmss.cc +++ b/dcmrt/libsrc/drtmss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMotionSynchronizationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -309,7 +309,7 @@ OFBool DRTMotionSynchronizationSequence::isValid() const } -unsigned long DRTMotionSynchronizationSequence::getNumberOfItems() const +size_t DRTMotionSynchronizationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -339,12 +339,12 @@ OFCondition DRTMotionSynchronizationSequence::gotoNextItem() } -OFCondition DRTMotionSynchronizationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTMotionSynchronizationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,12 +359,12 @@ OFCondition DRTMotionSynchronizationSequence::gotoItem(const unsigned long num, } -OFCondition DRTMotionSynchronizationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTMotionSynchronizationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -379,7 +379,7 @@ OFCondition DRTMotionSynchronizationSequence::gotoItem(const unsigned long num, } -OFCondition DRTMotionSynchronizationSequence::gotoItem(const unsigned long num) +OFCondition DRTMotionSynchronizationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -415,7 +415,7 @@ const DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence:: } -OFCondition DRTMotionSynchronizationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTMotionSynchronizationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -425,7 +425,7 @@ OFCondition DRTMotionSynchronizationSequence::getItem(const unsigned long num, I } -DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::getItem(const unsigned long num) +DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -435,7 +435,7 @@ DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::getIte } -const DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::getItem(const unsigned long num) const +const DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -445,13 +445,13 @@ const DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence:: } -DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::operator[](const unsigned long num) +DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::operator[](const size_t num) { return getItem(num); } -const DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::operator[](const unsigned long num) const +const DRTMotionSynchronizationSequence::Item &DRTMotionSynchronizationSequence::operator[](const size_t num) const { return getItem(num); } @@ -474,7 +474,7 @@ OFCondition DRTMotionSynchronizationSequence::addItem(Item *&item) } -OFCondition DRTMotionSynchronizationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTMotionSynchronizationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -497,7 +497,7 @@ OFCondition DRTMotionSynchronizationSequence::insertItem(const unsigned long pos } -OFCondition DRTMotionSynchronizationSequence::removeItem(const unsigned long pos) +OFCondition DRTMotionSynchronizationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtmucs.cc b/dcmrt/libsrc/drtmucs.cc index b995faa8..772158e2 100644 --- a/dcmrt/libsrc/drtmucs.cc +++ b/dcmrt/libsrc/drtmucs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMeasurementUnitsCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::Item::op EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTMeasurementUnitsCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTMeasurementUnitsCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MeasurementUnitsCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "MeasurementUnitsCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MeasurementUnitsCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "MeasurementUnitsCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResource(OFString & } +OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResource(const OFSt } +OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTMeasurementUnitsCodeSequence::isValid() const } -unsigned long DRTMeasurementUnitsCodeSequence::getNumberOfItems() const +size_t DRTMeasurementUnitsCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTMeasurementUnitsCodeSequence::gotoNextItem() } -OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const unsigned long num, O } -OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const unsigned long num, O } -OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTMeasurementUnitsCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::ge } -OFCondition DRTMeasurementUnitsCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTMeasurementUnitsCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::getItem(const unsigned long num, It } -DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::getItem(const unsigned long num) +DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::getItem( } -const DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::getItem(const unsigned long num) const +const DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::ge } -DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::operator[](const unsigned long num) +DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::operator[](const unsigned long num) const +const DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::addItem(Item *&item) } -OFCondition DRTMeasurementUnitsCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTMeasurementUnitsCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::insertItem(const unsigned long pos, } -OFCondition DRTMeasurementUnitsCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTMeasurementUnitsCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtoas.cc b/dcmrt/libsrc/drtoas.cc index 0685b2ff..8faeeeda 100644 --- a/dcmrt/libsrc/drtoas.cc +++ b/dcmrt/libsrc/drtoas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOriginalAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -316,7 +316,7 @@ OFBool DRTOriginalAttributesSequence::isValid() const } -unsigned long DRTOriginalAttributesSequence::getNumberOfItems() const +size_t DRTOriginalAttributesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -346,12 +346,12 @@ OFCondition DRTOriginalAttributesSequence::gotoNextItem() } -OFCondition DRTOriginalAttributesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTOriginalAttributesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -366,12 +366,12 @@ OFCondition DRTOriginalAttributesSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTOriginalAttributesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTOriginalAttributesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -386,7 +386,7 @@ OFCondition DRTOriginalAttributesSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTOriginalAttributesSequence::gotoItem(const unsigned long num) +OFCondition DRTOriginalAttributesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -422,7 +422,7 @@ const DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::getCur } -OFCondition DRTOriginalAttributesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTOriginalAttributesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -432,7 +432,7 @@ OFCondition DRTOriginalAttributesSequence::getItem(const unsigned long num, Item } -DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::getItem(const unsigned long num) +DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -442,7 +442,7 @@ DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::getItem(cons } -const DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::getItem(const unsigned long num) const +const DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -452,13 +452,13 @@ const DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::getIte } -DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::operator[](const unsigned long num) +DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::operator[](const size_t num) { return getItem(num); } -const DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::operator[](const unsigned long num) const +const DRTOriginalAttributesSequence::Item &DRTOriginalAttributesSequence::operator[](const size_t num) const { return getItem(num); } @@ -481,7 +481,7 @@ OFCondition DRTOriginalAttributesSequence::addItem(Item *&item) } -OFCondition DRTOriginalAttributesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTOriginalAttributesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -504,7 +504,7 @@ OFCondition DRTOriginalAttributesSequence::insertItem(const unsigned long pos, I } -OFCondition DRTOriginalAttributesSequence::removeItem(const unsigned long pos) +OFCondition DRTOriginalAttributesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtois.cc b/dcmrt/libsrc/drtois.cc index 43e4ce2f..8a12fc44 100644 --- a/dcmrt/libsrc/drtois.cc +++ b/dcmrt/libsrc/drtois.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOperatorIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -352,7 +352,7 @@ OFBool DRTOperatorIdentificationSequence::isValid() const } -unsigned long DRTOperatorIdentificationSequence::getNumberOfItems() const +size_t DRTOperatorIdentificationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -382,12 +382,12 @@ OFCondition DRTOperatorIdentificationSequence::gotoNextItem() } -OFCondition DRTOperatorIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTOperatorIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -402,12 +402,12 @@ OFCondition DRTOperatorIdentificationSequence::gotoItem(const unsigned long num, } -OFCondition DRTOperatorIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTOperatorIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -422,7 +422,7 @@ OFCondition DRTOperatorIdentificationSequence::gotoItem(const unsigned long num, } -OFCondition DRTOperatorIdentificationSequence::gotoItem(const unsigned long num) +OFCondition DRTOperatorIdentificationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -458,7 +458,7 @@ const DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence } -OFCondition DRTOperatorIdentificationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTOperatorIdentificationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -468,7 +468,7 @@ OFCondition DRTOperatorIdentificationSequence::getItem(const unsigned long num, } -DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::getItem(const unsigned long num) +DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -478,7 +478,7 @@ DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::getI } -const DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::getItem(const unsigned long num) const +const DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -488,13 +488,13 @@ const DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence } -DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::operator[](const unsigned long num) +DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::operator[](const size_t num) { return getItem(num); } -const DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::operator[](const unsigned long num) const +const DRTOperatorIdentificationSequence::Item &DRTOperatorIdentificationSequence::operator[](const size_t num) const { return getItem(num); } @@ -517,7 +517,7 @@ OFCondition DRTOperatorIdentificationSequence::addItem(Item *&item) } -OFCondition DRTOperatorIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTOperatorIdentificationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -540,7 +540,7 @@ OFCondition DRTOperatorIdentificationSequence::insertItem(const unsigned long po } -OFCondition DRTOperatorIdentificationSequence::removeItem(const unsigned long pos) +OFCondition DRTOperatorIdentificationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtopis.cc b/dcmrt/libsrc/drtopis.cc index a47bd1ec..2469939d 100644 --- a/dcmrt/libsrc/drtopis.cc +++ b/dcmrt/libsrc/drtopis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOtherPatientIDsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -287,7 +287,7 @@ OFBool DRTOtherPatientIDsSequence::isValid() const } -unsigned long DRTOtherPatientIDsSequence::getNumberOfItems() const +size_t DRTOtherPatientIDsSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -317,12 +317,12 @@ OFCondition DRTOtherPatientIDsSequence::gotoNextItem() } -OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTOtherPatientIDsSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -337,12 +337,12 @@ OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTOtherPatientIDsSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -357,7 +357,7 @@ OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num) +OFCondition DRTOtherPatientIDsSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -393,7 +393,7 @@ const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentIt } -OFCondition DRTOtherPatientIDsSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTOtherPatientIDsSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -403,7 +403,7 @@ OFCondition DRTOtherPatientIDsSequence::getItem(const unsigned long num, Item *& } -DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsigned long num) +DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -413,7 +413,7 @@ DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsi } -const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsigned long num) const +const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -423,13 +423,13 @@ const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(cons } -DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const unsigned long num) +DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const size_t num) { return getItem(num); } -const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const unsigned long num) const +const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const size_t num) const { return getItem(num); } @@ -452,7 +452,7 @@ OFCondition DRTOtherPatientIDsSequence::addItem(Item *&item) } -OFCondition DRTOtherPatientIDsSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTOtherPatientIDsSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -475,7 +475,7 @@ OFCondition DRTOtherPatientIDsSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTOtherPatientIDsSequence::removeItem(const unsigned long pos) +OFCondition DRTOtherPatientIDsSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtos.cc b/dcmrt/libsrc/drtos.cc index 81ccc2e0..7220b370 100644 --- a/dcmrt/libsrc/drtos.cc +++ b/dcmrt/libsrc/drtos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOverrideSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -21,22 +21,26 @@ DRTOverrideSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + OperatorIdentificationSequence(emptyDefaultItem /*emptyDefaultSequence*/), OperatorsName(DCM_OperatorsName), OverrideParameterPointer(DCM_OverrideParameterPointer), OverrideReason(DCM_OverrideReason), ParameterItemIndex(DCM_ParameterItemIndex), - ParameterSequencePointer(DCM_ParameterSequencePointer) + ParameterSequencePointer(DCM_ParameterSequencePointer), + ParameterValueNumber(DCM_ParameterValueNumber) { } DRTOverrideSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), OperatorsName(copy.OperatorsName), OverrideParameterPointer(copy.OverrideParameterPointer), OverrideReason(copy.OverrideReason), ParameterItemIndex(copy.ParameterItemIndex), - ParameterSequencePointer(copy.ParameterSequencePointer) + ParameterSequencePointer(copy.ParameterSequencePointer), + ParameterValueNumber(copy.ParameterValueNumber) { } @@ -51,11 +55,13 @@ DRTOverrideSequence::Item &DRTOverrideSequence::Item::operator=(const Item © if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; OperatorsName = copy.OperatorsName; OverrideParameterPointer = copy.OverrideParameterPointer; OverrideReason = copy.OverrideReason; ParameterItemIndex = copy.ParameterItemIndex; ParameterSequencePointer = copy.ParameterSequencePointer; + ParameterValueNumber = copy.ParameterValueNumber; } return *this; } @@ -69,7 +75,9 @@ void DRTOverrideSequence::Item::clear() ParameterSequencePointer.clear(); OverrideParameterPointer.clear(); ParameterItemIndex.clear(); + ParameterValueNumber.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); OverrideReason.clear(); } } @@ -80,7 +88,9 @@ OFBool DRTOverrideSequence::Item::isEmpty() return ParameterSequencePointer.isEmpty() && OverrideParameterPointer.isEmpty() && ParameterItemIndex.isEmpty() && + ParameterValueNumber.isEmpty() && OperatorsName.isEmpty() && + OperatorIdentificationSequence.isEmpty() && OverrideReason.isEmpty(); } @@ -101,7 +111,9 @@ OFCondition DRTOverrideSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ParameterSequencePointer, "1", "1", "OverrideSequence"); getAndCheckElementFromDataset(item, OverrideParameterPointer, "1", "1", "OverrideSequence"); getAndCheckElementFromDataset(item, ParameterItemIndex, "1", "1", "OverrideSequence"); + getAndCheckElementFromDataset(item, ParameterValueNumber, "1", "3", "OverrideSequence"); getAndCheckElementFromDataset(item, OperatorsName, "1-n", "2", "OverrideSequence"); + OperatorIdentificationSequence.read(item, "1-n", "3", "OverrideSequence"); getAndCheckElementFromDataset(item, OverrideReason, "1", "3", "OverrideSequence"); result = EC_Normal; } @@ -118,7 +130,9 @@ OFCondition DRTOverrideSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmAttributeTag(ParameterSequencePointer), "1", "1", "OverrideSequence"); addElementToDataset(result, item, new DcmAttributeTag(OverrideParameterPointer), "1", "1", "OverrideSequence"); addElementToDataset(result, item, new DcmIntegerString(ParameterItemIndex), "1", "1", "OverrideSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(ParameterValueNumber), "1", "3", "OverrideSequence"); addElementToDataset(result, item, new DcmPersonName(OperatorsName), "1-n", "2", "OverrideSequence"); + if (result.good()) result = OperatorIdentificationSequence.write(item, "1-n", "3", "OverrideSequence"); addElementToDataset(result, item, new DcmShortText(OverrideReason), "1", "3", "OverrideSequence"); } return result; @@ -179,6 +193,15 @@ OFCondition DRTOverrideSequence::Item::getParameterSequencePointer(OFString &val } +OFCondition DRTOverrideSequence::Item::getParameterValueNumber(Uint16 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedShort &, ParameterValueNumber).getUint16(value, pos); +} + + OFCondition DRTOverrideSequence::Item::setOperatorsName(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -244,6 +267,15 @@ OFCondition DRTOverrideSequence::Item::setParameterSequencePointer(const OFStrin } +OFCondition DRTOverrideSequence::Item::setParameterValueNumber(const Uint16 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return ParameterValueNumber.putUint16(value, pos); +} + + // --- sequence class --- DRTOverrideSequence::DRTOverrideSequence(const OFBool emptyDefaultSequence) @@ -347,7 +379,7 @@ OFBool DRTOverrideSequence::isValid() const } -unsigned long DRTOverrideSequence::getNumberOfItems() const +size_t DRTOverrideSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -377,12 +409,12 @@ OFCondition DRTOverrideSequence::gotoNextItem() } -OFCondition DRTOverrideSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTOverrideSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -397,12 +429,12 @@ OFCondition DRTOverrideSequence::gotoItem(const unsigned long num, OFListIterato } -OFCondition DRTOverrideSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTOverrideSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -417,7 +449,7 @@ OFCondition DRTOverrideSequence::gotoItem(const unsigned long num, OFListConstIt } -OFCondition DRTOverrideSequence::gotoItem(const unsigned long num) +OFCondition DRTOverrideSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -453,7 +485,7 @@ const DRTOverrideSequence::Item &DRTOverrideSequence::getCurrentItem() const } -OFCondition DRTOverrideSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTOverrideSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -463,7 +495,7 @@ OFCondition DRTOverrideSequence::getItem(const unsigned long num, Item *&item) } -DRTOverrideSequence::Item &DRTOverrideSequence::getItem(const unsigned long num) +DRTOverrideSequence::Item &DRTOverrideSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -473,7 +505,7 @@ DRTOverrideSequence::Item &DRTOverrideSequence::getItem(const unsigned long num) } -const DRTOverrideSequence::Item &DRTOverrideSequence::getItem(const unsigned long num) const +const DRTOverrideSequence::Item &DRTOverrideSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -483,13 +515,13 @@ const DRTOverrideSequence::Item &DRTOverrideSequence::getItem(const unsigned lon } -DRTOverrideSequence::Item &DRTOverrideSequence::operator[](const unsigned long num) +DRTOverrideSequence::Item &DRTOverrideSequence::operator[](const size_t num) { return getItem(num); } -const DRTOverrideSequence::Item &DRTOverrideSequence::operator[](const unsigned long num) const +const DRTOverrideSequence::Item &DRTOverrideSequence::operator[](const size_t num) const { return getItem(num); } @@ -512,7 +544,7 @@ OFCondition DRTOverrideSequence::addItem(Item *&item) } -OFCondition DRTOverrideSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTOverrideSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -535,7 +567,7 @@ OFCondition DRTOverrideSequence::insertItem(const unsigned long pos, Item *&item } -OFCondition DRTOverrideSequence::removeItem(const unsigned long pos) +OFCondition DRTOverrideSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpbcs.cc b/dcmrt/libsrc/drtpbcs.cc index 2f410328..97bb0e16 100644 --- a/dcmrt/libsrc/drtpbcs.cc +++ b/dcmrt/libsrc/drtpbcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientBreedCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTPatientBreedCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPatientBreedCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::Item::operator=( EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPatientBreedCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPatientBreedCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientBreedCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientBreedCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientBreedCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientBreedCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPatientBreedCodeSequence::Item::getMappingResource(OFString &valu } +OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPatientBreedCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTPatientBreedCodeSequence::isValid() const } -unsigned long DRTPatientBreedCodeSequence::getNumberOfItems() const +size_t DRTPatientBreedCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTPatientBreedCodeSequence::gotoNextItem() } -OFCondition DRTPatientBreedCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPatientBreedCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTPatientBreedCodeSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTPatientBreedCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPatientBreedCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTPatientBreedCodeSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTPatientBreedCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTPatientBreedCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::getCurrent } -OFCondition DRTPatientBreedCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPatientBreedCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTPatientBreedCodeSequence::getItem(const unsigned long num, Item * } -DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::getItem(const unsigned long num) +DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::getItem(const un } -const DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::getItem(const unsigned long num) const +const DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::getItem(co } -DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::operator[](const unsigned long num) +DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::operator[](const unsigned long num) const +const DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTPatientBreedCodeSequence::addItem(Item *&item) } -OFCondition DRTPatientBreedCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPatientBreedCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTPatientBreedCodeSequence::insertItem(const unsigned long pos, Ite } -OFCondition DRTPatientBreedCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTPatientBreedCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpcs.cc b/dcmrt/libsrc/drtpcs.cc index d2105448..964aa26e 100644 --- a/dcmrt/libsrc/drtpcs.cc +++ b/dcmrt/libsrc/drtpcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::Item::operator=(const EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTProcedureCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTProcedureCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTProcedureCodeSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTProcedureCodeSequence::Item::setMappingResource(const OFString &v } +OFCondition DRTProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTProcedureCodeSequence::isValid() const } -unsigned long DRTProcedureCodeSequence::getNumberOfItems() const +size_t DRTProcedureCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTProcedureCodeSequence::gotoNextItem() } -OFCondition DRTProcedureCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTProcedureCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTProcedureCodeSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTProcedureCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTProcedureCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTProcedureCodeSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTProcedureCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTProcedureCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::getCurrentItem() } -OFCondition DRTProcedureCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTProcedureCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTProcedureCodeSequence::getItem(const unsigned long num, Item *&it } -DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::getItem(const unsigned long num) +DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::getItem(const unsigned } -const DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::getItem(const unsigned long num) const +const DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::getItem(const un } -DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::operator[](const unsigned long num) +DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::operator[](const unsigned long num) const +const DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTProcedureCodeSequence::addItem(Item *&item) } -OFCondition DRTProcedureCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTProcedureCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTProcedureCodeSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTProcedureCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTProcedureCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpcxs.cc b/dcmrt/libsrc/drtpcxs.cc index b95cebda..3ae55f5a 100644 --- a/dcmrt/libsrc/drtpcxs.cc +++ b/dcmrt/libsrc/drtpcxs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTProtocolContextSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -553,7 +553,7 @@ OFBool DRTProtocolContextSequence::isValid() const } -unsigned long DRTProtocolContextSequence::getNumberOfItems() const +size_t DRTProtocolContextSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -583,12 +583,12 @@ OFCondition DRTProtocolContextSequence::gotoNextItem() } -OFCondition DRTProtocolContextSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTProtocolContextSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -603,12 +603,12 @@ OFCondition DRTProtocolContextSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTProtocolContextSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTProtocolContextSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -623,7 +623,7 @@ OFCondition DRTProtocolContextSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTProtocolContextSequence::gotoItem(const unsigned long num) +OFCondition DRTProtocolContextSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -659,7 +659,7 @@ const DRTProtocolContextSequence::Item &DRTProtocolContextSequence::getCurrentIt } -OFCondition DRTProtocolContextSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTProtocolContextSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -669,7 +669,7 @@ OFCondition DRTProtocolContextSequence::getItem(const unsigned long num, Item *& } -DRTProtocolContextSequence::Item &DRTProtocolContextSequence::getItem(const unsigned long num) +DRTProtocolContextSequence::Item &DRTProtocolContextSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -679,7 +679,7 @@ DRTProtocolContextSequence::Item &DRTProtocolContextSequence::getItem(const unsi } -const DRTProtocolContextSequence::Item &DRTProtocolContextSequence::getItem(const unsigned long num) const +const DRTProtocolContextSequence::Item &DRTProtocolContextSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -689,13 +689,13 @@ const DRTProtocolContextSequence::Item &DRTProtocolContextSequence::getItem(cons } -DRTProtocolContextSequence::Item &DRTProtocolContextSequence::operator[](const unsigned long num) +DRTProtocolContextSequence::Item &DRTProtocolContextSequence::operator[](const size_t num) { return getItem(num); } -const DRTProtocolContextSequence::Item &DRTProtocolContextSequence::operator[](const unsigned long num) const +const DRTProtocolContextSequence::Item &DRTProtocolContextSequence::operator[](const size_t num) const { return getItem(num); } @@ -718,7 +718,7 @@ OFCondition DRTProtocolContextSequence::addItem(Item *&item) } -OFCondition DRTProtocolContextSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTProtocolContextSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -741,7 +741,7 @@ OFCondition DRTProtocolContextSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTProtocolContextSequence::removeItem(const unsigned long pos) +OFCondition DRTProtocolContextSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpdecs.cc b/dcmrt/libsrc/drtpdecs.cc index 0238804b..a919aa9d 100644 --- a/dcmrt/libsrc/drtpdecs.cc +++ b/dcmrt/libsrc/drtpdecs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPrivateDataElementCharacteristicsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -25,6 +25,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const OFBool emptyDefau DeidentificationActionSequence(emptyDefaultItem /*emptyDefaultSequence*/), NonidentifyingPrivateElements(DCM_NonidentifyingPrivateElements), PrivateCreatorReference(DCM_PrivateCreatorReference), + PrivateDataElementDefinitionSequence(emptyDefaultItem /*emptyDefaultSequence*/), PrivateGroupReference(DCM_PrivateGroupReference) { } @@ -36,6 +37,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const Item ©) DeidentificationActionSequence(copy.DeidentificationActionSequence), NonidentifyingPrivateElements(copy.NonidentifyingPrivateElements), PrivateCreatorReference(copy.PrivateCreatorReference), + PrivateDataElementDefinitionSequence(copy.PrivateDataElementDefinitionSequence), PrivateGroupReference(copy.PrivateGroupReference) { } @@ -55,6 +57,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharact DeidentificationActionSequence = copy.DeidentificationActionSequence; NonidentifyingPrivateElements = copy.NonidentifyingPrivateElements; PrivateCreatorReference = copy.PrivateCreatorReference; + PrivateDataElementDefinitionSequence = copy.PrivateDataElementDefinitionSequence; PrivateGroupReference = copy.PrivateGroupReference; } return *this; @@ -68,6 +71,7 @@ void DRTPrivateDataElementCharacteristicsSequence::Item::clear() /* clear all DICOM attributes */ PrivateGroupReference.clear(); PrivateCreatorReference.clear(); + PrivateDataElementDefinitionSequence.clear(); BlockIdentifyingInformationStatus.clear(); NonidentifyingPrivateElements.clear(); DeidentificationActionSequence.clear(); @@ -79,6 +83,7 @@ OFBool DRTPrivateDataElementCharacteristicsSequence::Item::isEmpty() { return PrivateGroupReference.isEmpty() && PrivateCreatorReference.isEmpty() && + PrivateDataElementDefinitionSequence.isEmpty() && BlockIdentifyingInformationStatus.isEmpty() && NonidentifyingPrivateElements.isEmpty() && DeidentificationActionSequence.isEmpty(); @@ -100,6 +105,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::read(DcmItem &it clear(); getAndCheckElementFromDataset(item, PrivateGroupReference, "1", "1", "PrivateDataElementCharacteristicsSequence"); getAndCheckElementFromDataset(item, PrivateCreatorReference, "1", "1", "PrivateDataElementCharacteristicsSequence"); + PrivateDataElementDefinitionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); getAndCheckElementFromDataset(item, BlockIdentifyingInformationStatus, "1", "1", "PrivateDataElementCharacteristicsSequence"); getAndCheckElementFromDataset(item, NonidentifyingPrivateElements, "1-n", "1C", "PrivateDataElementCharacteristicsSequence"); DeidentificationActionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); @@ -117,6 +123,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::write(DcmItem &i result = EC_Normal; addElementToDataset(result, item, new DcmUnsignedShort(PrivateGroupReference), "1", "1", "PrivateDataElementCharacteristicsSequence"); addElementToDataset(result, item, new DcmLongString(PrivateCreatorReference), "1", "1", "PrivateDataElementCharacteristicsSequence"); + if (result.good()) result = PrivateDataElementDefinitionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); addElementToDataset(result, item, new DcmCodeString(BlockIdentifyingInformationStatus), "1", "1", "PrivateDataElementCharacteristicsSequence"); addElementToDataset(result, item, new DcmUnsignedShort(NonidentifyingPrivateElements), "1-n", "1C", "PrivateDataElementCharacteristicsSequence"); if (result.good()) result = DeidentificationActionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); @@ -308,7 +315,7 @@ OFBool DRTPrivateDataElementCharacteristicsSequence::isValid() const } -unsigned long DRTPrivateDataElementCharacteristicsSequence::getNumberOfItems() const +size_t DRTPrivateDataElementCharacteristicsSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -338,12 +345,12 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoNextItem() } -OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -358,12 +365,12 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const unsigne } -OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -378,7 +385,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const unsigne } -OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const unsigned long num) +OFCondition DRTPrivateDataElementCharacteristicsSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -414,7 +421,7 @@ const DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementC } -OFCondition DRTPrivateDataElementCharacteristicsSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPrivateDataElementCharacteristicsSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -424,7 +431,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::getItem(const unsigned } -DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::getItem(const unsigned long num) +DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -434,7 +441,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharact } -const DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::getItem(const unsigned long num) const +const DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -444,13 +451,13 @@ const DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementC } -DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::operator[](const unsigned long num) +DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::operator[](const size_t num) { return getItem(num); } -const DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::operator[](const unsigned long num) const +const DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharacteristicsSequence::operator[](const size_t num) const { return getItem(num); } @@ -473,7 +480,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::addItem(Item *&item) } -OFCondition DRTPrivateDataElementCharacteristicsSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPrivateDataElementCharacteristicsSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -496,7 +503,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::insertItem(const unsig } -OFCondition DRTPrivateDataElementCharacteristicsSequence::removeItem(const unsigned long pos) +OFCondition DRTPrivateDataElementCharacteristicsSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpdeds.cc b/dcmrt/libsrc/drtpdeds.cc new file mode 100644 index 00000000..bad9dafe --- /dev/null +++ b/dcmrt/libsrc/drtpdeds.cc @@ -0,0 +1,764 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTPrivateDataElementDefinitionSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtpdeds.h" + + +// --- item class --- + +DRTPrivateDataElementDefinitionSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + PrivateDataElement(DCM_PrivateDataElement), + PrivateDataElementDescription(DCM_PrivateDataElementDescription), + PrivateDataElementEncoding(DCM_PrivateDataElementEncoding), + PrivateDataElementKeyword(DCM_PrivateDataElementKeyword), + PrivateDataElementName(DCM_PrivateDataElementName), + PrivateDataElementNumberOfItems(DCM_PrivateDataElementNumberOfItems), + PrivateDataElementValueMultiplicity(DCM_PrivateDataElementValueMultiplicity), + PrivateDataElementValueRepresentation(DCM_PrivateDataElementValueRepresentation), + RetrieveURI(DCM_RetrieveURI) +{ +} + + +DRTPrivateDataElementDefinitionSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + PrivateDataElement(copy.PrivateDataElement), + PrivateDataElementDescription(copy.PrivateDataElementDescription), + PrivateDataElementEncoding(copy.PrivateDataElementEncoding), + PrivateDataElementKeyword(copy.PrivateDataElementKeyword), + PrivateDataElementName(copy.PrivateDataElementName), + PrivateDataElementNumberOfItems(copy.PrivateDataElementNumberOfItems), + PrivateDataElementValueMultiplicity(copy.PrivateDataElementValueMultiplicity), + PrivateDataElementValueRepresentation(copy.PrivateDataElementValueRepresentation), + RetrieveURI(copy.RetrieveURI) +{ +} + + +DRTPrivateDataElementDefinitionSequence::Item::~Item() +{ +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + PrivateDataElement = copy.PrivateDataElement; + PrivateDataElementDescription = copy.PrivateDataElementDescription; + PrivateDataElementEncoding = copy.PrivateDataElementEncoding; + PrivateDataElementKeyword = copy.PrivateDataElementKeyword; + PrivateDataElementName = copy.PrivateDataElementName; + PrivateDataElementNumberOfItems = copy.PrivateDataElementNumberOfItems; + PrivateDataElementValueMultiplicity = copy.PrivateDataElementValueMultiplicity; + PrivateDataElementValueRepresentation = copy.PrivateDataElementValueRepresentation; + RetrieveURI = copy.RetrieveURI; + } + return *this; +} + + +void DRTPrivateDataElementDefinitionSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + PrivateDataElement.clear(); + PrivateDataElementValueMultiplicity.clear(); + PrivateDataElementValueRepresentation.clear(); + PrivateDataElementNumberOfItems.clear(); + PrivateDataElementKeyword.clear(); + PrivateDataElementName.clear(); + PrivateDataElementDescription.clear(); + PrivateDataElementEncoding.clear(); + RetrieveURI.clear(); + } +} + + +OFBool DRTPrivateDataElementDefinitionSequence::Item::isEmpty() +{ + return PrivateDataElement.isEmpty() && + PrivateDataElementValueMultiplicity.isEmpty() && + PrivateDataElementValueRepresentation.isEmpty() && + PrivateDataElementNumberOfItems.isEmpty() && + PrivateDataElementKeyword.isEmpty() && + PrivateDataElementName.isEmpty() && + PrivateDataElementDescription.isEmpty() && + PrivateDataElementEncoding.isEmpty() && + RetrieveURI.isEmpty(); +} + + +OFBool DRTPrivateDataElementDefinitionSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, PrivateDataElement, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementValueMultiplicity, "1-3", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementValueRepresentation, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementNumberOfItems, "1-2", "1C", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementKeyword, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementName, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementDescription, "1", "3", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementEncoding, "1", "3", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, RetrieveURI, "1", "3", "PrivateDataElementDefinitionSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmUnsignedShort(PrivateDataElement), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementValueMultiplicity), "1-3", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmCodeString(PrivateDataElementValueRepresentation), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementNumberOfItems), "1-2", "1C", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementKeyword), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementName), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementDescription), "1", "3", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementEncoding), "1", "3", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(RetrieveURI), "1", "3", "PrivateDataElementDefinitionSequence"); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElement(Uint16 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedShort &, PrivateDataElement).getUint16(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementDescription(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementDescription, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementEncoding(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementEncoding, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementKeyword(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementKeyword, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementName, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedLong &, PrivateDataElementNumberOfItems).getUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedLong &, PrivateDataElementValueMultiplicity).getUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueRepresentation(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementValueRepresentation, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getRetrieveURI(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(RetrieveURI, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElement(const Uint16 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return PrivateDataElement.putUint16(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementDescription(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = PrivateDataElementDescription.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementEncoding(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = PrivateDataElementEncoding.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementKeyword(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PrivateDataElementKeyword.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PrivateDataElementName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return PrivateDataElementNumberOfItems.putUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return PrivateDataElementValueMultiplicity.putUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PrivateDataElementValueRepresentation.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setRetrieveURI(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; + if (result.good()) + result = RetrieveURI.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTPrivateDataElementDefinitionSequence &DRTPrivateDataElementDefinitionSequence::operator=(const DRTPrivateDataElementDefinitionSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTPrivateDataElementDefinitionSequence::~DRTPrivateDataElementDefinitionSequence() +{ + clear(); +} + + +void DRTPrivateDataElementDefinitionSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTPrivateDataElementDefinitionSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTPrivateDataElementDefinitionSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTPrivateDataElementDefinitionSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_PrivateDataElementDefinitionSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_PrivateDataElementDefinitionSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_PrivateDataElementDefinitionSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtpfms.cc b/dcmrt/libsrc/drtpfms.cc index 0db5bd3d..62ae998a 100644 --- a/dcmrt/libsrc/drtpfms.cc +++ b/dcmrt/libsrc/drtpfms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPrimaryFluenceModeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTPrimaryFluenceModeSequence::isValid() const } -unsigned long DRTPrimaryFluenceModeSequence::getNumberOfItems() const +size_t DRTPrimaryFluenceModeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTPrimaryFluenceModeSequence::gotoNextItem() } -OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const unsigned long num) +OFCondition DRTPrimaryFluenceModeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::getCur } -OFCondition DRTPrimaryFluenceModeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPrimaryFluenceModeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTPrimaryFluenceModeSequence::getItem(const unsigned long num, Item } -DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::getItem(const unsigned long num) +DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::getItem(cons } -const DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::getItem(const unsigned long num) const +const DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::getIte } -DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::operator[](const unsigned long num) +DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::operator[](const size_t num) { return getItem(num); } -const DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::operator[](const unsigned long num) const +const DRTPrimaryFluenceModeSequence::Item &DRTPrimaryFluenceModeSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTPrimaryFluenceModeSequence::addItem(Item *&item) } -OFCondition DRTPrimaryFluenceModeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPrimaryFluenceModeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTPrimaryFluenceModeSequence::insertItem(const unsigned long pos, I } -OFCondition DRTPrimaryFluenceModeSequence::removeItem(const unsigned long pos) +OFCondition DRTPrimaryFluenceModeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpics.cc b/dcmrt/libsrc/drtpics.cc index 77b1ad8a..18c90666 100644 --- a/dcmrt/libsrc/drtpics.cc +++ b/dcmrt/libsrc/drtpics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPersonIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPersonIdentificationCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPersonIdentificationCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PersonIdentificationCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PersonIdentificationCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PersonIdentificationCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PersonIdentificationCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResource(OFStri } +OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResource(const } +OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTPersonIdentificationCodeSequence::isValid() const } -unsigned long DRTPersonIdentificationCodeSequence::getNumberOfItems() const +size_t DRTPersonIdentificationCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTPersonIdentificationCodeSequence::gotoNextItem() } -OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long nu } -OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long nu } -OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequ } -OFCondition DRTPersonIdentificationCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPersonIdentificationCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTPersonIdentificationCodeSequence::getItem(const unsigned long num } -DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getItem(const unsigned long num) +DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence:: } -const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getItem(const unsigned long num) const +const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequ } -DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::operator[](const unsigned long num) +DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::operator[](const unsigned long num) const +const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTPersonIdentificationCodeSequence::addItem(Item *&item) } -OFCondition DRTPersonIdentificationCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPersonIdentificationCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTPersonIdentificationCodeSequence::insertItem(const unsigned long } -OFCondition DRTPersonIdentificationCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTPersonIdentificationCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtplan.cc b/dcmrt/libsrc/drtplan.cc index 63968f1d..bb0e1991 100644 --- a/dcmrt/libsrc/drtplan.cc +++ b/dcmrt/libsrc/drtplan.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,6 +23,9 @@ DRTPlanIOD::DRTPlanIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTPlanIOD::DRTPlanIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTPlanIOD::DRTPlanIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTPlanIOD::DRTPlanIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTPlanIOD::DRTPlanIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -138,6 +159,7 @@ DRTPlanIOD::DRTPlanIOD() ReferencedStructureSetSequence(), ReferencedDoseSequence(), ReferencedRTPlanSequence(), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(DCM_PrescriptionDescription), DoseReferenceSequence(), ToleranceTableSequence(), @@ -153,6 +175,12 @@ DRTPlanIOD::DRTPlanIOD() ReviewDate(DCM_ReviewDate), ReviewTime(DCM_ReviewTime), ReviewerName(DCM_ReviewerName), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -163,6 +191,8 @@ DRTPlanIOD::DRTPlanIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -193,6 +223,9 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -208,12 +241,19 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -247,7 +287,16 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -267,6 +316,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -291,6 +341,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -308,6 +359,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence), ReferencedDoseSequence(copy.ReferencedDoseSequence), ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(copy.PrescriptionDescription), DoseReferenceSequence(copy.DoseReferenceSequence), ToleranceTableSequence(copy.ToleranceTableSequence), @@ -323,6 +375,12 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) ReviewDate(copy.ReviewDate), ReviewTime(copy.ReviewTime), ReviewerName(copy.ReviewerName), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -333,6 +391,8 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -369,6 +429,9 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -384,12 +447,19 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -423,7 +493,16 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -443,6 +522,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -467,6 +547,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -484,6 +565,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence; ReferencedDoseSequence = copy.ReferencedDoseSequence; ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence; + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; PrescriptionDescription = copy.PrescriptionDescription; DoseReferenceSequence = copy.DoseReferenceSequence; ToleranceTableSequence = copy.ToleranceTableSequence; @@ -499,6 +581,12 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) ReviewDate = copy.ReviewDate; ReviewTime = copy.ReviewTime; ReviewerName = copy.ReviewerName; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -509,6 +597,8 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -540,6 +630,9 @@ void DRTPlanIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -555,12 +648,19 @@ void DRTPlanIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -594,7 +694,16 @@ void DRTPlanIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -614,6 +723,7 @@ void DRTPlanIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -638,6 +748,7 @@ void DRTPlanIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -655,6 +766,7 @@ void DRTPlanIOD::clear() ReferencedStructureSetSequence.clear(); ReferencedDoseSequence.clear(); ReferencedRTPlanSequence.clear(); + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear(); PrescriptionDescription.clear(); DoseReferenceSequence.clear(); ToleranceTableSequence.clear(); @@ -670,6 +782,12 @@ void DRTPlanIOD::clear() ReviewDate.clear(); ReviewTime.clear(); ReviewerName.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -680,6 +798,8 @@ void DRTPlanIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -763,6 +883,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -782,6 +903,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule"); ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); + getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule"); @@ -831,6 +953,14 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -842,6 +972,8 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -878,6 +1010,9 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -893,12 +1028,19 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -954,7 +1096,16 @@ OFCondition DRTPlanIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -991,6 +1142,7 @@ OFCondition DRTPlanIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -1029,6 +1181,9 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1044,12 +1199,19 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1094,7 +1256,16 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1122,6 +1293,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1158,6 +1330,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1177,6 +1350,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule"); if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); + addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- if (isRTPrescriptionModulePresent(OFFalse /*complete*/)) @@ -1228,6 +1402,17 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1239,6 +1424,8 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1299,7 +1486,16 @@ OFBool DRTPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1416,6 +1612,18 @@ OFBool DRTPlanIOD::isApprovalModulePresent(const OFBool complete) } +OFBool DRTPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1448,6 +1656,12 @@ OFCondition DRTPlanIOD::getAdmittingDiagnosesDescription(OFString &value, const } +OFCondition DRTPlanIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -1586,6 +1800,12 @@ OFCondition DRTPlanIOD::getDeidentificationMethod(OFString &value, const signed } +OFCondition DRTPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1598,6 +1818,12 @@ OFCondition DRTPlanIOD::getEthnicGroup(OFString &value, const signed long pos) c } +OFCondition DRTPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos); +} + + OFCondition DRTPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const { return getStringValueFromElement(FrameOfReferenceUID, value, pos); @@ -1670,6 +1896,12 @@ OFCondition DRTPlanIOD::getIssuerOfPatientID(OFString &value, const signed long } +OFCondition DRTPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1688,6 +1920,36 @@ OFCondition DRTPlanIOD::getManufacturerModelName(OFString &value, const signed l } +OFCondition DRTPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTPlanIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1736,18 +1998,42 @@ OFCondition DRTPlanIOD::getPatientAge(OFString &value, const signed long pos) co } +OFCondition DRTPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1760,6 +2046,12 @@ OFCondition DRTPlanIOD::getPatientComments(OFString &value, const signed long po } +OFCondition DRTPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTPlanIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1808,6 +2100,12 @@ OFCondition DRTPlanIOD::getPatientSpeciesDescription(OFString &value, const sign } +OFCondition DRTPlanIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTPlanIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1880,6 +2178,12 @@ OFCondition DRTPlanIOD::getPositionReferenceIndicator(OFString &value, const sig } +OFCondition DRTPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PrescriptionDescription, value, pos); @@ -2060,6 +2364,12 @@ OFCondition DRTPlanIOD::getServiceEpisodeID(OFString &value, const signed long p } +OFCondition DRTPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -2090,6 +2400,24 @@ OFCondition DRTPlanIOD::getStationName(OFString &value, const signed long pos) c } +OFCondition DRTPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTPlanIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTPlanIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -2180,6 +2508,15 @@ OFCondition DRTPlanIOD::setAdmittingDiagnosesDescription(const OFString &value, } +OFCondition DRTPlanIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2387,6 +2724,15 @@ OFCondition DRTPlanIOD::setDeidentificationMethod(const OFString &value, const O } +OFCondition DRTPlanIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2405,6 +2751,12 @@ OFCondition DRTPlanIOD::setEthnicGroup(const OFString &value, const OFBool check } +OFCondition DRTPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos) +{ + return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos); +} + + OFCondition DRTPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; @@ -2504,6 +2856,15 @@ OFCondition DRTPlanIOD::setIssuerOfPatientID(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2531,6 +2892,33 @@ OFCondition DRTPlanIOD::setManufacturerModelName(const OFString &value, const OF } +OFCondition DRTPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2603,6 +2991,15 @@ OFCondition DRTPlanIOD::setPatientAge(const OFString &value, const OFBool check) } +OFCondition DRTPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2612,6 +3009,15 @@ OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2621,6 +3027,15 @@ OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2639,6 +3054,15 @@ OFCondition DRTPlanIOD::setPatientComments(const OFString &value, const OFBool c } +OFCondition DRTPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2702,6 +3126,15 @@ OFCondition DRTPlanIOD::setPatientSpeciesDescription(const OFString &value, cons } +OFCondition DRTPlanIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2798,6 +3231,12 @@ OFCondition DRTPlanIOD::setPositionReferenceIndicator(const OFString &value, con } +OFCondition DRTPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; @@ -3059,6 +3498,15 @@ OFCondition DRTPlanIOD::setServiceEpisodeID(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -3095,6 +3543,33 @@ OFCondition DRTPlanIOD::setStationName(const OFString &value, const OFBool check } +OFCondition DRTPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtporcs.cc b/dcmrt/libsrc/drtporcs.cc index 7543d603..78ec4b19 100644 --- a/dcmrt/libsrc/drtporcs.cc +++ b/dcmrt/libsrc/drtporcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPurposeOfReferenceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPurposeOfReferenceCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPurposeOfReferenceCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PurposeOfReferenceCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PurposeOfReferenceCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PurposeOfReferenceCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PurposeOfReferenceCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResource(const OF } +OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTPurposeOfReferenceCodeSequence::isValid() const } -unsigned long DRTPurposeOfReferenceCodeSequence::getNumberOfItems() const +size_t DRTPurposeOfReferenceCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTPurposeOfReferenceCodeSequence::gotoNextItem() } -OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTPurposeOfReferenceCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence } -OFCondition DRTPurposeOfReferenceCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPurposeOfReferenceCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::getItem(const unsigned long num, } -DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::getItem(const unsigned long num) +DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::getI } -const DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::getItem(const unsigned long num) const +const DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence } -DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::operator[](const unsigned long num) +DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::operator[](const unsigned long num) const +const DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::addItem(Item *&item) } -OFCondition DRTPurposeOfReferenceCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPurposeOfReferenceCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::insertItem(const unsigned long po } -OFCondition DRTPurposeOfReferenceCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTPurposeOfReferenceCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtporis.cc b/dcmrt/libsrc/drtporis.cc index baa1c800..a124117f 100644 --- a/dcmrt/libsrc/drtporis.cc +++ b/dcmrt/libsrc/drtporis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPhysiciansOfRecordIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -352,7 +352,7 @@ OFBool DRTPhysiciansOfRecordIdentificationSequence::isValid() const } -unsigned long DRTPhysiciansOfRecordIdentificationSequence::getNumberOfItems() const +size_t DRTPhysiciansOfRecordIdentificationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -382,12 +382,12 @@ OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoNextItem() } -OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -402,12 +402,12 @@ OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const unsigned } -OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -422,7 +422,7 @@ OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const unsigned } -OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const unsigned long num) +OFCondition DRTPhysiciansOfRecordIdentificationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -458,7 +458,7 @@ const DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordId } -OFCondition DRTPhysiciansOfRecordIdentificationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPhysiciansOfRecordIdentificationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -468,7 +468,7 @@ OFCondition DRTPhysiciansOfRecordIdentificationSequence::getItem(const unsigned } -DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::getItem(const unsigned long num) +DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -478,7 +478,7 @@ DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentifi } -const DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::getItem(const unsigned long num) const +const DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -488,13 +488,13 @@ const DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordId } -DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::operator[](const unsigned long num) +DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::operator[](const size_t num) { return getItem(num); } -const DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::operator[](const unsigned long num) const +const DRTPhysiciansOfRecordIdentificationSequence::Item &DRTPhysiciansOfRecordIdentificationSequence::operator[](const size_t num) const { return getItem(num); } @@ -517,7 +517,7 @@ OFCondition DRTPhysiciansOfRecordIdentificationSequence::addItem(Item *&item) } -OFCondition DRTPhysiciansOfRecordIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPhysiciansOfRecordIdentificationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -540,7 +540,7 @@ OFCondition DRTPhysiciansOfRecordIdentificationSequence::insertItem(const unsign } -OFCondition DRTPhysiciansOfRecordIdentificationSequence::removeItem(const unsigned long pos) +OFCondition DRTPhysiciansOfRecordIdentificationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtppcs.cc b/dcmrt/libsrc/drtppcs.cc index 9180bdd7..f22545ce 100644 --- a/dcmrt/libsrc/drtppcs.cc +++ b/dcmrt/libsrc/drtppcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPerformedProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/), URNCodeValue(DCM_URNCodeValue) @@ -56,6 +57,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), ProtocolContextSequence(copy.ProtocolContextSequence), URNCodeValue(copy.URNCodeValue) @@ -86,6 +88,7 @@ DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; ProtocolContextSequence = copy.ProtocolContextSequence; URNCodeValue = copy.URNCodeValue; @@ -110,6 +113,7 @@ void DRTPerformedProtocolCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -132,6 +136,7 @@ OFBool DRTPerformedProtocolCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -164,6 +169,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PerformedProtocolCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PerformedProtocolCodeSequence"); @@ -192,6 +198,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PerformedProtocolCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PerformedProtocolCodeSequence"); @@ -310,6 +317,15 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -484,6 +500,19 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -613,7 +642,7 @@ OFBool DRTPerformedProtocolCodeSequence::isValid() const } -unsigned long DRTPerformedProtocolCodeSequence::getNumberOfItems() const +size_t DRTPerformedProtocolCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -643,12 +672,12 @@ OFCondition DRTPerformedProtocolCodeSequence::gotoNextItem() } -OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -663,12 +692,12 @@ OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -683,7 +712,7 @@ OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTPerformedProtocolCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -719,7 +748,7 @@ const DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence:: } -OFCondition DRTPerformedProtocolCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPerformedProtocolCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -729,7 +758,7 @@ OFCondition DRTPerformedProtocolCodeSequence::getItem(const unsigned long num, I } -DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::getItem(const unsigned long num) +DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -739,7 +768,7 @@ DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::getIte } -const DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::getItem(const unsigned long num) const +const DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -749,13 +778,13 @@ const DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence:: } -DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::operator[](const unsigned long num) +DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::operator[](const unsigned long num) const +const DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -778,7 +807,7 @@ OFCondition DRTPerformedProtocolCodeSequence::addItem(Item *&item) } -OFCondition DRTPerformedProtocolCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPerformedProtocolCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -801,7 +830,7 @@ OFCondition DRTPerformedProtocolCodeSequence::insertItem(const unsigned long pos } -OFCondition DRTPerformedProtocolCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTPerformedProtocolCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtprsis.cc b/dcmrt/libsrc/drtprsis.cc index bb30d25b..8d806f30 100644 --- a/dcmrt/libsrc/drtprsis.cc +++ b/dcmrt/libsrc/drtprsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPhysiciansReadingStudyIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -352,7 +352,7 @@ OFBool DRTPhysiciansReadingStudyIdentificationSequence::isValid() const } -unsigned long DRTPhysiciansReadingStudyIdentificationSequence::getNumberOfItems() const +size_t DRTPhysiciansReadingStudyIdentificationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -382,12 +382,12 @@ OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoNextItem() } -OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -402,12 +402,12 @@ OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const unsi } -OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -422,7 +422,7 @@ OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const unsi } -OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const unsigned long num) +OFCondition DRTPhysiciansReadingStudyIdentificationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -458,7 +458,7 @@ const DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadin } -OFCondition DRTPhysiciansReadingStudyIdentificationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPhysiciansReadingStudyIdentificationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -468,7 +468,7 @@ OFCondition DRTPhysiciansReadingStudyIdentificationSequence::getItem(const unsig } -DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::getItem(const unsigned long num) +DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -478,7 +478,7 @@ DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudy } -const DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::getItem(const unsigned long num) const +const DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -488,13 +488,13 @@ const DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadin } -DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::operator[](const unsigned long num) +DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::operator[](const size_t num) { return getItem(num); } -const DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::operator[](const unsigned long num) const +const DRTPhysiciansReadingStudyIdentificationSequence::Item &DRTPhysiciansReadingStudyIdentificationSequence::operator[](const size_t num) const { return getItem(num); } @@ -517,7 +517,7 @@ OFCondition DRTPhysiciansReadingStudyIdentificationSequence::addItem(Item *&item } -OFCondition DRTPhysiciansReadingStudyIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPhysiciansReadingStudyIdentificationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -540,7 +540,7 @@ OFCondition DRTPhysiciansReadingStudyIdentificationSequence::insertItem(const un } -OFCondition DRTPhysiciansReadingStudyIdentificationSequence::removeItem(const unsigned long pos) +OFCondition DRTPhysiciansReadingStudyIdentificationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpscs.cc b/dcmrt/libsrc/drtpscs.cc index 8ea54802..cc30e6b6 100644 --- a/dcmrt/libsrc/drtpscs.cc +++ b/dcmrt/libsrc/drtpscs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientSpeciesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::Item::operat EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPatientSpeciesCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPatientSpeciesCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSpeciesCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSpeciesCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSpeciesCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSpeciesCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResource(OFString &va } +OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResource(const OFStri } +OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTPatientSpeciesCodeSequence::isValid() const } -unsigned long DRTPatientSpeciesCodeSequence::getNumberOfItems() const +size_t DRTPatientSpeciesCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTPatientSpeciesCodeSequence::gotoNextItem() } -OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTPatientSpeciesCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::getCur } -OFCondition DRTPatientSpeciesCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPatientSpeciesCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTPatientSpeciesCodeSequence::getItem(const unsigned long num, Item } -DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::getItem(const unsigned long num) +DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::getItem(cons } -const DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::getItem(const unsigned long num) const +const DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::getIte } -DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::operator[](const unsigned long num) +DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::operator[](const unsigned long num) const +const DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTPatientSpeciesCodeSequence::addItem(Item *&item) } -OFCondition DRTPatientSpeciesCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPatientSpeciesCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTPatientSpeciesCodeSequence::insertItem(const unsigned long pos, I } -OFCondition DRTPatientSpeciesCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTPatientSpeciesCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpsics.cc b/dcmrt/libsrc/drtpsics.cc index d35b732a..aa0b5dc7 100644 --- a/dcmrt/libsrc/drtpsics.cc +++ b/dcmrt/libsrc/drtpsics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientSizeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTPatientSizeCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPatientSizeCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::Item::operator=(co EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPatientSizeCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPatientSizeCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSizeCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSizeCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSizeCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSizeCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPatientSizeCodeSequence::Item::getMappingResource(OFString &value } +OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPatientSizeCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTPatientSizeCodeSequence::isValid() const } -unsigned long DRTPatientSizeCodeSequence::getNumberOfItems() const +size_t DRTPatientSizeCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTPatientSizeCodeSequence::gotoNextItem() } -OFCondition DRTPatientSizeCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPatientSizeCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTPatientSizeCodeSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTPatientSizeCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPatientSizeCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTPatientSizeCodeSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTPatientSizeCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTPatientSizeCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::getCurrentIt } -OFCondition DRTPatientSizeCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPatientSizeCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTPatientSizeCodeSequence::getItem(const unsigned long num, Item *& } -DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::getItem(const unsigned long num) +DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::getItem(const unsi } -const DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::getItem(const unsigned long num) const +const DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::getItem(cons } -DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::operator[](const unsigned long num) +DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::operator[](const unsigned long num) const +const DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTPatientSizeCodeSequence::addItem(Item *&item) } -OFCondition DRTPatientSizeCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPatientSizeCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTPatientSizeCodeSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTPatientSizeCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTPatientSizeCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpss.cc b/dcmrt/libsrc/drtpss.cc index d33128f2..413b0766 100644 --- a/dcmrt/libsrc/drtpss.cc +++ b/dcmrt/libsrc/drtpss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -525,7 +525,7 @@ OFBool DRTPatientSetupSequence::isValid() const } -unsigned long DRTPatientSetupSequence::getNumberOfItems() const +size_t DRTPatientSetupSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -555,12 +555,12 @@ OFCondition DRTPatientSetupSequence::gotoNextItem() } -OFCondition DRTPatientSetupSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPatientSetupSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -575,12 +575,12 @@ OFCondition DRTPatientSetupSequence::gotoItem(const unsigned long num, OFListIte } -OFCondition DRTPatientSetupSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPatientSetupSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -595,7 +595,7 @@ OFCondition DRTPatientSetupSequence::gotoItem(const unsigned long num, OFListCon } -OFCondition DRTPatientSetupSequence::gotoItem(const unsigned long num) +OFCondition DRTPatientSetupSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -631,7 +631,7 @@ const DRTPatientSetupSequence::Item &DRTPatientSetupSequence::getCurrentItem() c } -OFCondition DRTPatientSetupSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPatientSetupSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -641,7 +641,7 @@ OFCondition DRTPatientSetupSequence::getItem(const unsigned long num, Item *&ite } -DRTPatientSetupSequence::Item &DRTPatientSetupSequence::getItem(const unsigned long num) +DRTPatientSetupSequence::Item &DRTPatientSetupSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -651,7 +651,7 @@ DRTPatientSetupSequence::Item &DRTPatientSetupSequence::getItem(const unsigned l } -const DRTPatientSetupSequence::Item &DRTPatientSetupSequence::getItem(const unsigned long num) const +const DRTPatientSetupSequence::Item &DRTPatientSetupSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -661,13 +661,13 @@ const DRTPatientSetupSequence::Item &DRTPatientSetupSequence::getItem(const unsi } -DRTPatientSetupSequence::Item &DRTPatientSetupSequence::operator[](const unsigned long num) +DRTPatientSetupSequence::Item &DRTPatientSetupSequence::operator[](const size_t num) { return getItem(num); } -const DRTPatientSetupSequence::Item &DRTPatientSetupSequence::operator[](const unsigned long num) const +const DRTPatientSetupSequence::Item &DRTPatientSetupSequence::operator[](const size_t num) const { return getItem(num); } @@ -690,7 +690,7 @@ OFCondition DRTPatientSetupSequence::addItem(Item *&item) } -OFCondition DRTPatientSetupSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPatientSetupSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -713,7 +713,7 @@ OFCondition DRTPatientSetupSequence::insertItem(const unsigned long pos, Item *& } -OFCondition DRTPatientSetupSequence::removeItem(const unsigned long pos) +OFCondition DRTPatientSetupSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpsss.cc b/dcmrt/libsrc/drtpsss.cc index e036f820..8578dd9c 100644 --- a/dcmrt/libsrc/drtpsss.cc +++ b/dcmrt/libsrc/drtpsss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPredecessorStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTPredecessorStructureSetSequence::isValid() const } -unsigned long DRTPredecessorStructureSetSequence::getNumberOfItems() const +size_t DRTPredecessorStructureSetSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTPredecessorStructureSetSequence::gotoNextItem() } -OFCondition DRTPredecessorStructureSetSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPredecessorStructureSetSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTPredecessorStructureSetSequence::gotoItem(const unsigned long num } -OFCondition DRTPredecessorStructureSetSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPredecessorStructureSetSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTPredecessorStructureSetSequence::gotoItem(const unsigned long num } -OFCondition DRTPredecessorStructureSetSequence::gotoItem(const unsigned long num) +OFCondition DRTPredecessorStructureSetSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequen } -OFCondition DRTPredecessorStructureSetSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPredecessorStructureSetSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTPredecessorStructureSetSequence::getItem(const unsigned long num, } -DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::getItem(const unsigned long num) +DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::ge } -const DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::getItem(const unsigned long num) const +const DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequen } -DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::operator[](const unsigned long num) +DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::operator[](const size_t num) { return getItem(num); } -const DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::operator[](const unsigned long num) const +const DRTPredecessorStructureSetSequence::Item &DRTPredecessorStructureSetSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTPredecessorStructureSetSequence::addItem(Item *&item) } -OFCondition DRTPredecessorStructureSetSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPredecessorStructureSetSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTPredecessorStructureSetSequence::insertItem(const unsigned long p } -OFCondition DRTPredecessorStructureSetSequence::removeItem(const unsigned long pos) +OFCondition DRTPredecessorStructureSetSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtpvis.cc b/dcmrt/libsrc/drtpvis.cc index 11689b3f..f85bd3cc 100644 --- a/dcmrt/libsrc/drtpvis.cc +++ b/dcmrt/libsrc/drtpvis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPlannedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -573,7 +573,7 @@ OFBool DRTPlannedVerificationImageSequence::isValid() const } -unsigned long DRTPlannedVerificationImageSequence::getNumberOfItems() const +size_t DRTPlannedVerificationImageSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -603,12 +603,12 @@ OFCondition DRTPlannedVerificationImageSequence::gotoNextItem() } -OFCondition DRTPlannedVerificationImageSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTPlannedVerificationImageSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -623,12 +623,12 @@ OFCondition DRTPlannedVerificationImageSequence::gotoItem(const unsigned long nu } -OFCondition DRTPlannedVerificationImageSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTPlannedVerificationImageSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -643,7 +643,7 @@ OFCondition DRTPlannedVerificationImageSequence::gotoItem(const unsigned long nu } -OFCondition DRTPlannedVerificationImageSequence::gotoItem(const unsigned long num) +OFCondition DRTPlannedVerificationImageSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -679,7 +679,7 @@ const DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequ } -OFCondition DRTPlannedVerificationImageSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTPlannedVerificationImageSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -689,7 +689,7 @@ OFCondition DRTPlannedVerificationImageSequence::getItem(const unsigned long num } -DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::getItem(const unsigned long num) +DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -699,7 +699,7 @@ DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence:: } -const DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::getItem(const unsigned long num) const +const DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -709,13 +709,13 @@ const DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequ } -DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::operator[](const unsigned long num) +DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::operator[](const size_t num) { return getItem(num); } -const DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::operator[](const unsigned long num) const +const DRTPlannedVerificationImageSequence::Item &DRTPlannedVerificationImageSequence::operator[](const size_t num) const { return getItem(num); } @@ -738,7 +738,7 @@ OFCondition DRTPlannedVerificationImageSequence::addItem(Item *&item) } -OFCondition DRTPlannedVerificationImageSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTPlannedVerificationImageSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -761,7 +761,7 @@ OFCondition DRTPlannedVerificationImageSequence::insertItem(const unsigned long } -OFCondition DRTPlannedVerificationImageSequence::removeItem(const unsigned long pos) +OFCondition DRTPlannedVerificationImageSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtqds.cc b/dcmrt/libsrc/drtqds.cc index 2f35e338..e23801cd 100644 --- a/dcmrt/libsrc/drtqds.cc +++ b/dcmrt/libsrc/drtqds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTQuantityDefinitionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -546,7 +546,7 @@ OFBool DRTQuantityDefinitionSequence::isValid() const } -unsigned long DRTQuantityDefinitionSequence::getNumberOfItems() const +size_t DRTQuantityDefinitionSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -576,12 +576,12 @@ OFCondition DRTQuantityDefinitionSequence::gotoNextItem() } -OFCondition DRTQuantityDefinitionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTQuantityDefinitionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -596,12 +596,12 @@ OFCondition DRTQuantityDefinitionSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTQuantityDefinitionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTQuantityDefinitionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -616,7 +616,7 @@ OFCondition DRTQuantityDefinitionSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTQuantityDefinitionSequence::gotoItem(const unsigned long num) +OFCondition DRTQuantityDefinitionSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -652,7 +652,7 @@ const DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::getCur } -OFCondition DRTQuantityDefinitionSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTQuantityDefinitionSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -662,7 +662,7 @@ OFCondition DRTQuantityDefinitionSequence::getItem(const unsigned long num, Item } -DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::getItem(const unsigned long num) +DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -672,7 +672,7 @@ DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::getItem(cons } -const DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::getItem(const unsigned long num) const +const DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -682,13 +682,13 @@ const DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::getIte } -DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::operator[](const unsigned long num) +DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::operator[](const size_t num) { return getItem(num); } -const DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::operator[](const unsigned long num) const +const DRTQuantityDefinitionSequence::Item &DRTQuantityDefinitionSequence::operator[](const size_t num) const { return getItem(num); } @@ -711,7 +711,7 @@ OFCondition DRTQuantityDefinitionSequence::addItem(Item *&item) } -OFCondition DRTQuantityDefinitionSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTQuantityDefinitionSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -734,7 +734,7 @@ OFCondition DRTQuantityDefinitionSequence::insertItem(const unsigned long pos, I } -OFCondition DRTQuantityDefinitionSequence::removeItem(const unsigned long pos) +OFCondition DRTQuantityDefinitionSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtras.cc b/dcmrt/libsrc/drtras.cc index 5f9a1e70..6c2806da 100644 --- a/dcmrt/libsrc/drtras.cc +++ b/dcmrt/libsrc/drtras.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRequestAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -431,7 +431,7 @@ OFBool DRTRequestAttributesSequence::isValid() const } -unsigned long DRTRequestAttributesSequence::getNumberOfItems() const +size_t DRTRequestAttributesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -461,12 +461,12 @@ OFCondition DRTRequestAttributesSequence::gotoNextItem() } -OFCondition DRTRequestAttributesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRequestAttributesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -481,12 +481,12 @@ OFCondition DRTRequestAttributesSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTRequestAttributesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRequestAttributesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -501,7 +501,7 @@ OFCondition DRTRequestAttributesSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTRequestAttributesSequence::gotoItem(const unsigned long num) +OFCondition DRTRequestAttributesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -537,7 +537,7 @@ const DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::getCurre } -OFCondition DRTRequestAttributesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRequestAttributesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -547,7 +547,7 @@ OFCondition DRTRequestAttributesSequence::getItem(const unsigned long num, Item } -DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::getItem(const unsigned long num) +DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -557,7 +557,7 @@ DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::getItem(const } -const DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::getItem(const unsigned long num) const +const DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -567,13 +567,13 @@ const DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::getItem( } -DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::operator[](const unsigned long num) +DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::operator[](const size_t num) { return getItem(num); } -const DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::operator[](const unsigned long num) const +const DRTRequestAttributesSequence::Item &DRTRequestAttributesSequence::operator[](const size_t num) const { return getItem(num); } @@ -596,7 +596,7 @@ OFCondition DRTRequestAttributesSequence::addItem(Item *&item) } -OFCondition DRTRequestAttributesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRequestAttributesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -619,7 +619,7 @@ OFCondition DRTRequestAttributesSequence::insertItem(const unsigned long pos, It } -OFCondition DRTRequestAttributesSequence::removeItem(const unsigned long pos) +OFCondition DRTRequestAttributesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbas2.cc b/dcmrt/libsrc/drtrbas2.cc index 361f0c57..e94d5fab 100644 --- a/dcmrt/libsrc/drtrbas2.cc +++ b/dcmrt/libsrc/drtrbas2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -231,7 +231,7 @@ OFBool DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::isValid() cons } -unsigned long DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getNumberOfItems() const +size_t DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -261,12 +261,12 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoNextI } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -281,12 +281,12 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem( } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,7 +301,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem( } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -337,7 +337,7 @@ const DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTRefere } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -347,7 +347,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getItem(c } -DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getItem(const unsigned long num) +DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -357,7 +357,7 @@ DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBr } -const DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getItem(const unsigned long num) const +const DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -367,13 +367,13 @@ const DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTRefere } -DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::operator[](const unsigned long num) +DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::operator[](const unsigned long num) const +const DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::operator[](const size_t num) const { return getItem(num); } @@ -396,7 +396,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::addItem(I } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -419,7 +419,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::insertIte } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbas8.cc b/dcmrt/libsrc/drtrbas8.cc index 58051ea3..ecd7d1a2 100644 --- a/dcmrt/libsrc/drtrbas8.cc +++ b/dcmrt/libsrc/drtrbas8.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -316,7 +316,7 @@ OFBool DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::isVa } -unsigned long DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getNumberOfItems() const +size_t DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -346,12 +346,12 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule: } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -366,12 +366,12 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule: } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -386,7 +386,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule: } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -422,7 +422,7 @@ const DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -432,7 +432,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule: } -DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getItem(const unsigned long num) +DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -442,7 +442,7 @@ DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTRe } -const DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getItem(const unsigned long num) const +const DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -452,13 +452,13 @@ const DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item } -DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::operator[](const unsigned long num) +DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::operator[](const unsigned long num) const +const DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::Item &DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::operator[](const size_t num) const { return getItem(num); } @@ -481,7 +481,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule: } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -504,7 +504,7 @@ OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule: } -OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbls.cc b/dcmrt/libsrc/drtrbls.cc index 53254281..89259ee9 100644 --- a/dcmrt/libsrc/drtrbls.cc +++ b/dcmrt/libsrc/drtrbls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -318,7 +318,7 @@ OFBool DRTRecordedBlockSequence::isValid() const } -unsigned long DRTRecordedBlockSequence::getNumberOfItems() const +size_t DRTRecordedBlockSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -348,12 +348,12 @@ OFCondition DRTRecordedBlockSequence::gotoNextItem() } -OFCondition DRTRecordedBlockSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRecordedBlockSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -368,12 +368,12 @@ OFCondition DRTRecordedBlockSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTRecordedBlockSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRecordedBlockSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -388,7 +388,7 @@ OFCondition DRTRecordedBlockSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTRecordedBlockSequence::gotoItem(const unsigned long num) +OFCondition DRTRecordedBlockSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -424,7 +424,7 @@ const DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::getCurrentItem() } -OFCondition DRTRecordedBlockSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRecordedBlockSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -434,7 +434,7 @@ OFCondition DRTRecordedBlockSequence::getItem(const unsigned long num, Item *&it } -DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::getItem(const unsigned long num) +DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -444,7 +444,7 @@ DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::getItem(const unsigned } -const DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::getItem(const unsigned long num) const +const DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -454,13 +454,13 @@ const DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::getItem(const un } -DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::operator[](const unsigned long num) +DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::operator[](const size_t num) { return getItem(num); } -const DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::operator[](const unsigned long num) const +const DRTRecordedBlockSequence::Item &DRTRecordedBlockSequence::operator[](const size_t num) const { return getItem(num); } @@ -483,7 +483,7 @@ OFCondition DRTRecordedBlockSequence::addItem(Item *&item) } -OFCondition DRTRecordedBlockSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRecordedBlockSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -506,7 +506,7 @@ OFCondition DRTRecordedBlockSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTRecordedBlockSequence::removeItem(const unsigned long pos) +OFCondition DRTRecordedBlockSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbos1.cc b/dcmrt/libsrc/drtrbos1.cc index aae8b6ad..9155cf94 100644 --- a/dcmrt/libsrc/drtrbos1.cc +++ b/dcmrt/libsrc/drtrbos1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBolusSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -318,7 +318,7 @@ OFBool DRTReferencedBolusSequenceInRTBeamsModule::isValid() const } -unsigned long DRTReferencedBolusSequenceInRTBeamsModule::getNumberOfItems() const +size_t DRTReferencedBolusSequenceInRTBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -348,12 +348,12 @@ OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoNextItem() } -OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -368,12 +368,12 @@ OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const unsigned l } -OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -388,7 +388,7 @@ OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const unsigned l } -OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBolusSequenceInRTBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -424,7 +424,7 @@ const DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenc } -OFCondition DRTReferencedBolusSequenceInRTBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBolusSequenceInRTBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -434,7 +434,7 @@ OFCondition DRTReferencedBolusSequenceInRTBeamsModule::getItem(const unsigned lo } -DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::getItem(const unsigned long num) +DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -444,7 +444,7 @@ DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTB } -const DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::getItem(const unsigned long num) const +const DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -454,13 +454,13 @@ const DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenc } -DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::operator[](const unsigned long num) +DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::operator[](const unsigned long num) const +const DRTReferencedBolusSequenceInRTBeamsModule::Item &DRTReferencedBolusSequenceInRTBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -483,7 +483,7 @@ OFCondition DRTReferencedBolusSequenceInRTBeamsModule::addItem(Item *&item) } -OFCondition DRTReferencedBolusSequenceInRTBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBolusSequenceInRTBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -506,7 +506,7 @@ OFCondition DRTReferencedBolusSequenceInRTBeamsModule::insertItem(const unsigned } -OFCondition DRTReferencedBolusSequenceInRTBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBolusSequenceInRTBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbos6.cc b/dcmrt/libsrc/drtrbos6.cc index 306e642e..defefe04 100644 --- a/dcmrt/libsrc/drtrbos6.cc +++ b/dcmrt/libsrc/drtrbos6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBolusSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTReferencedBolusSequenceInRTIonBeamsModule::isValid() const } -unsigned long DRTReferencedBolusSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTReferencedBolusSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoNextItem() } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const unsigne } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const unsigne } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequ } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::getItem(const unsigned } -DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceIn } -const DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequ } -DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTReferencedBolusSequenceInRTIonBeamsModule::Item &DRTReferencedBolusSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::addItem(Item *&item) } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::insertItem(const unsig } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbos7.cc b/dcmrt/libsrc/drtrbos7.cc index 3b04a4c0..f4cbb740 100644 --- a/dcmrt/libsrc/drtrbos7.cc +++ b/dcmrt/libsrc/drtrbos7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::isValid() cons } -unsigned long DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const +size_t DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoNextI } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem( } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem( } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTRefere } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getItem(c } -DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) +DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBo } -const DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) const +const DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTRefere } -DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) +DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) const +const DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::Item &DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::addItem(I } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::insertIte } -OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbs2.cc b/dcmrt/libsrc/drtrbs2.cc index 67a0c564..cb51a128 100644 --- a/dcmrt/libsrc/drtrbs2.cc +++ b/dcmrt/libsrc/drtrbs2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBeamSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -238,7 +238,7 @@ OFBool DRTReferencedBeamSequenceInRTDoseModule::isValid() const } -unsigned long DRTReferencedBeamSequenceInRTDoseModule::getNumberOfItems() const +size_t DRTReferencedBeamSequenceInRTDoseModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -268,12 +268,12 @@ OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoNextItem() } -OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -288,12 +288,12 @@ OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const unsigned lon } -OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -308,7 +308,7 @@ OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const unsigned lon } -OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBeamSequenceInRTDoseModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -344,7 +344,7 @@ const DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceIn } -OFCondition DRTReferencedBeamSequenceInRTDoseModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBeamSequenceInRTDoseModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -354,7 +354,7 @@ OFCondition DRTReferencedBeamSequenceInRTDoseModule::getItem(const unsigned long } -DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::getItem(const unsigned long num) +DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -364,7 +364,7 @@ DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDose } -const DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::getItem(const unsigned long num) const +const DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -374,13 +374,13 @@ const DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceIn } -DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::operator[](const unsigned long num) +DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::operator[](const unsigned long num) const +const DRTReferencedBeamSequenceInRTDoseModule::Item &DRTReferencedBeamSequenceInRTDoseModule::operator[](const size_t num) const { return getItem(num); } @@ -403,7 +403,7 @@ OFCondition DRTReferencedBeamSequenceInRTDoseModule::addItem(Item *&item) } -OFCondition DRTReferencedBeamSequenceInRTDoseModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBeamSequenceInRTDoseModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -426,7 +426,7 @@ OFCondition DRTReferencedBeamSequenceInRTDoseModule::insertItem(const unsigned l } -OFCondition DRTReferencedBeamSequenceInRTDoseModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBeamSequenceInRTDoseModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbs4.cc b/dcmrt/libsrc/drtrbs4.cc index 54bc29ee..58204d47 100644 --- a/dcmrt/libsrc/drtrbs4.cc +++ b/dcmrt/libsrc/drtrbs4.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -21,9 +21,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + AlternateBeamDose(DCM_AlternateBeamDose), + AlternateBeamDoseType(DCM_AlternateBeamDoseType), BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit), BeamDose(DCM_BeamDose), BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint), + BeamDoseType(DCM_BeamDoseType), BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamMeterset(DCM_BeamMeterset), ReferencedBeamNumber(DCM_ReferencedBeamNumber) @@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBo DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + AlternateBeamDose(copy.AlternateBeamDose), + AlternateBeamDoseType(copy.AlternateBeamDoseType), BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit), BeamDose(copy.BeamDose), BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint), + BeamDoseType(copy.BeamDoseType), BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence), BeamMeterset(copy.BeamMeterset), ReferencedBeamNumber(copy.ReferencedBeamNumber) @@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBe if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + AlternateBeamDose = copy.AlternateBeamDose; + AlternateBeamDoseType = copy.AlternateBeamDoseType; BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit; BeamDose = copy.BeamDose; BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint; + BeamDoseType = copy.BeamDoseType; BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence; BeamMeterset = copy.BeamMeterset; ReferencedBeamNumber = copy.ReferencedBeamNumber; @@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::clear() ReferencedBeamNumber.clear(); BeamDoseSpecificationPoint.clear(); BeamDose.clear(); + BeamDoseType.clear(); + AlternateBeamDose.clear(); + AlternateBeamDoseType.clear(); BeamDoseVerificationControlPointSequence.clear(); BeamMeterset.clear(); BeamDeliveryDurationLimit.clear(); @@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::isEmpty( return ReferencedBeamNumber.isEmpty() && BeamDoseSpecificationPoint.isEmpty() && BeamDose.isEmpty() && + BeamDoseType.isEmpty() && + AlternateBeamDose.isEmpty() && + AlternateBeamDoseType.isEmpty() && BeamDoseVerificationControlPointSequence.isEmpty() && BeamMeterset.isEmpty() && BeamDeliveryDurationLimit.isEmpty(); @@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::rea getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence"); BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence"); @@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence"); if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence"); @@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDose, value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(BeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamMeterset(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDose.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::set } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = BeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamMeterset(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -386,7 +482,7 @@ OFBool DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::isValid() cons } -unsigned long DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getNumberOfItems() const +size_t DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -416,12 +512,12 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoNextI } -OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -436,12 +532,12 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem( } -OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -456,7 +552,7 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem( } -OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -492,7 +588,7 @@ const DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTRefere } -OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -502,7 +598,7 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getItem(c } -DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num) +DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -512,7 +608,7 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBe } -const DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num) const +const DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -522,13 +618,13 @@ const DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTRefere } -DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::operator[](const unsigned long num) +DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::operator[](const unsigned long num) const +const DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -551,7 +647,7 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::addItem(I } -OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -574,7 +670,7 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::insertIte } -OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrbs8.cc b/dcmrt/libsrc/drtrbs8.cc index e2b26616..d9419aa2 100644 --- a/dcmrt/libsrc/drtrbs8.cc +++ b/dcmrt/libsrc/drtrbs8.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBeamSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -21,9 +21,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + AlternateBeamDose(DCM_AlternateBeamDose), + AlternateBeamDoseType(DCM_AlternateBeamDoseType), BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit), BeamDose(DCM_BeamDose), BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint), + BeamDoseType(DCM_BeamDoseType), BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamMeterset(DCM_BeamMeterset), ReferencedBeamNumber(DCM_ReferencedBeamNumber) @@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool empty DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + AlternateBeamDose(copy.AlternateBeamDose), + AlternateBeamDoseType(copy.AlternateBeamDoseType), BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit), BeamDose(copy.BeamDose), BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint), + BeamDoseType(copy.BeamDoseType), BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence), BeamMeterset(copy.BeamMeterset), ReferencedBeamNumber(copy.ReferencedBeamNumber) @@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequen if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + AlternateBeamDose = copy.AlternateBeamDose; + AlternateBeamDoseType = copy.AlternateBeamDoseType; BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit; BeamDose = copy.BeamDose; BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint; + BeamDoseType = copy.BeamDoseType; BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence; BeamMeterset = copy.BeamMeterset; ReferencedBeamNumber = copy.ReferencedBeamNumber; @@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::clear() ReferencedBeamNumber.clear(); BeamDoseSpecificationPoint.clear(); BeamDose.clear(); + BeamDoseType.clear(); + AlternateBeamDose.clear(); + AlternateBeamDoseType.clear(); BeamDoseVerificationControlPointSequence.clear(); BeamMeterset.clear(); BeamDeliveryDurationLimit.clear(); @@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::isEmpty() return ReferencedBeamNumber.isEmpty() && BeamDoseSpecificationPoint.isEmpty() && BeamDose.isEmpty() && + BeamDoseType.isEmpty() && + AlternateBeamDose.isEmpty() && + AlternateBeamDoseType.isEmpty() && BeamDoseVerificationControlPointSequence.isEmpty() && BeamMeterset.isEmpty() && BeamDeliveryDurationLimit.isEmpty(); @@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::read(DcmIte getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence"); BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence"); @@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence"); if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence"); @@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDose, value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDose } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(BeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamMeterset(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getReferenc } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDose.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDose } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = BeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamMeterset(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -386,7 +482,7 @@ OFBool DRTReferencedBeamSequenceInRTFractionSchemeModule::isValid() const } -unsigned long DRTReferencedBeamSequenceInRTFractionSchemeModule::getNumberOfItems() const +size_t DRTReferencedBeamSequenceInRTFractionSchemeModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -416,12 +512,12 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoNextItem() } -OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -436,12 +532,12 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const un } -OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -456,7 +552,7 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const un } -OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -492,7 +588,7 @@ const DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeam } -OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -502,7 +598,7 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::getItem(const uns } -DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::getItem(const unsigned long num) +DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -512,7 +608,7 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequen } -const DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::getItem(const unsigned long num) const +const DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -522,13 +618,13 @@ const DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeam } -DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::operator[](const unsigned long num) +DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::operator[](const unsigned long num) const +const DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequenceInRTFractionSchemeModule::operator[](const size_t num) const { return getItem(num); } @@ -551,7 +647,7 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::addItem(Item *&it } -OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -574,7 +670,7 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::insertItem(const } -OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrcdrs.cc b/dcmrt/libsrc/drtrcdrs.cc index acad21e3..15ae4b76 100644 --- a/dcmrt/libsrc/drtrcdrs.cc +++ b/dcmrt/libsrc/drtrcdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -307,7 +307,7 @@ OFBool DRTReferencedCalculatedDoseReferenceSequence::isValid() const } -unsigned long DRTReferencedCalculatedDoseReferenceSequence::getNumberOfItems() const +size_t DRTReferencedCalculatedDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -337,12 +337,12 @@ OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoNextItem() } -OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -357,12 +357,12 @@ OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const unsigne } -OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -377,7 +377,7 @@ OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const unsigne } -OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedCalculatedDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -413,7 +413,7 @@ const DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculate } -OFCondition DRTReferencedCalculatedDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedCalculatedDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -423,7 +423,7 @@ OFCondition DRTReferencedCalculatedDoseReferenceSequence::getItem(const unsigned } -DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::getItem(const unsigned long num) +DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -433,7 +433,7 @@ DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseR } -const DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::getItem(const unsigned long num) const +const DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -443,13 +443,13 @@ const DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculate } -DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::operator[](const unsigned long num) +DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::operator[](const unsigned long num) const +const DRTReferencedCalculatedDoseReferenceSequence::Item &DRTReferencedCalculatedDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -472,7 +472,7 @@ OFCondition DRTReferencedCalculatedDoseReferenceSequence::addItem(Item *&item) } -OFCondition DRTReferencedCalculatedDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedCalculatedDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -495,7 +495,7 @@ OFCondition DRTReferencedCalculatedDoseReferenceSequence::insertItem(const unsig } -OFCondition DRTReferencedCalculatedDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedCalculatedDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrcos.cc b/dcmrt/libsrc/drtrcos.cc index 0b3b03b0..338cb350 100644 --- a/dcmrt/libsrc/drtrcos.cc +++ b/dcmrt/libsrc/drtrcos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -289,7 +289,7 @@ OFBool DRTRecordedCompensatorSequence::isValid() const } -unsigned long DRTRecordedCompensatorSequence::getNumberOfItems() const +size_t DRTRecordedCompensatorSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -319,12 +319,12 @@ OFCondition DRTRecordedCompensatorSequence::gotoNextItem() } -OFCondition DRTRecordedCompensatorSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRecordedCompensatorSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,12 +339,12 @@ OFCondition DRTRecordedCompensatorSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTRecordedCompensatorSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRecordedCompensatorSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,7 +359,7 @@ OFCondition DRTRecordedCompensatorSequence::gotoItem(const unsigned long num, OF } -OFCondition DRTRecordedCompensatorSequence::gotoItem(const unsigned long num) +OFCondition DRTRecordedCompensatorSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -395,7 +395,7 @@ const DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::getC } -OFCondition DRTRecordedCompensatorSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRecordedCompensatorSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -405,7 +405,7 @@ OFCondition DRTRecordedCompensatorSequence::getItem(const unsigned long num, Ite } -DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::getItem(const unsigned long num) +DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -415,7 +415,7 @@ DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::getItem(co } -const DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::getItem(const unsigned long num) const +const DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -425,13 +425,13 @@ const DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::getI } -DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::operator[](const unsigned long num) +DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::operator[](const size_t num) { return getItem(num); } -const DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::operator[](const unsigned long num) const +const DRTRecordedCompensatorSequence::Item &DRTRecordedCompensatorSequence::operator[](const size_t num) const { return getItem(num); } @@ -454,7 +454,7 @@ OFCondition DRTRecordedCompensatorSequence::addItem(Item *&item) } -OFCondition DRTRecordedCompensatorSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRecordedCompensatorSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -477,7 +477,7 @@ OFCondition DRTRecordedCompensatorSequence::insertItem(const unsigned long pos, } -OFCondition DRTRecordedCompensatorSequence::removeItem(const unsigned long pos) +OFCondition DRTRecordedCompensatorSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrcps.cc b/dcmrt/libsrc/drtrcps.cc index c115babb..5fd3b7c6 100644 --- a/dcmrt/libsrc/drtrcps.cc +++ b/dcmrt/libsrc/drtrcps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -269,7 +269,7 @@ OFBool DRTReferencedControlPointSequence::isValid() const } -unsigned long DRTReferencedControlPointSequence::getNumberOfItems() const +size_t DRTReferencedControlPointSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -299,12 +299,12 @@ OFCondition DRTReferencedControlPointSequence::gotoNextItem() } -OFCondition DRTReferencedControlPointSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedControlPointSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -319,12 +319,12 @@ OFCondition DRTReferencedControlPointSequence::gotoItem(const unsigned long num, } -OFCondition DRTReferencedControlPointSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedControlPointSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,7 +339,7 @@ OFCondition DRTReferencedControlPointSequence::gotoItem(const unsigned long num, } -OFCondition DRTReferencedControlPointSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedControlPointSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -375,7 +375,7 @@ const DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence } -OFCondition DRTReferencedControlPointSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedControlPointSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -385,7 +385,7 @@ OFCondition DRTReferencedControlPointSequence::getItem(const unsigned long num, } -DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::getItem(const unsigned long num) +DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -395,7 +395,7 @@ DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::getI } -const DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::getItem(const unsigned long num) const +const DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -405,13 +405,13 @@ const DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence } -DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::operator[](const unsigned long num) +DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::operator[](const unsigned long num) const +const DRTReferencedControlPointSequence::Item &DRTReferencedControlPointSequence::operator[](const size_t num) const { return getItem(num); } @@ -434,7 +434,7 @@ OFCondition DRTReferencedControlPointSequence::addItem(Item *&item) } -OFCondition DRTReferencedControlPointSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedControlPointSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -457,7 +457,7 @@ OFCondition DRTReferencedControlPointSequence::insertItem(const unsigned long po } -OFCondition DRTReferencedControlPointSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedControlPointSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrcs.cc b/dcmrt/libsrc/drtrcs.cc index b64abf7e..ed3e8ee4 100644 --- a/dcmrt/libsrc/drtrcs.cc +++ b/dcmrt/libsrc/drtrcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTROIContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -326,7 +326,7 @@ OFBool DRTROIContourSequence::isValid() const } -unsigned long DRTROIContourSequence::getNumberOfItems() const +size_t DRTROIContourSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -356,12 +356,12 @@ OFCondition DRTROIContourSequence::gotoNextItem() } -OFCondition DRTROIContourSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTROIContourSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -376,12 +376,12 @@ OFCondition DRTROIContourSequence::gotoItem(const unsigned long num, OFListItera } -OFCondition DRTROIContourSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTROIContourSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -396,7 +396,7 @@ OFCondition DRTROIContourSequence::gotoItem(const unsigned long num, OFListConst } -OFCondition DRTROIContourSequence::gotoItem(const unsigned long num) +OFCondition DRTROIContourSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -432,7 +432,7 @@ const DRTROIContourSequence::Item &DRTROIContourSequence::getCurrentItem() const } -OFCondition DRTROIContourSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTROIContourSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -442,7 +442,7 @@ OFCondition DRTROIContourSequence::getItem(const unsigned long num, Item *&item) } -DRTROIContourSequence::Item &DRTROIContourSequence::getItem(const unsigned long num) +DRTROIContourSequence::Item &DRTROIContourSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -452,7 +452,7 @@ DRTROIContourSequence::Item &DRTROIContourSequence::getItem(const unsigned long } -const DRTROIContourSequence::Item &DRTROIContourSequence::getItem(const unsigned long num) const +const DRTROIContourSequence::Item &DRTROIContourSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -462,13 +462,13 @@ const DRTROIContourSequence::Item &DRTROIContourSequence::getItem(const unsigned } -DRTROIContourSequence::Item &DRTROIContourSequence::operator[](const unsigned long num) +DRTROIContourSequence::Item &DRTROIContourSequence::operator[](const size_t num) { return getItem(num); } -const DRTROIContourSequence::Item &DRTROIContourSequence::operator[](const unsigned long num) const +const DRTROIContourSequence::Item &DRTROIContourSequence::operator[](const size_t num) const { return getItem(num); } @@ -491,7 +491,7 @@ OFCondition DRTROIContourSequence::addItem(Item *&item) } -OFCondition DRTROIContourSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTROIContourSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -514,7 +514,7 @@ OFCondition DRTROIContourSequence::insertItem(const unsigned long pos, Item *&it } -OFCondition DRTROIContourSequence::removeItem(const unsigned long pos) +OFCondition DRTROIContourSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrdros.cc b/dcmrt/libsrc/drtrdros.cc index d2f0e91f..5d1e794d 100644 --- a/dcmrt/libsrc/drtrdros.cc +++ b/dcmrt/libsrc/drtrdros.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTDoseROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -298,7 +298,7 @@ OFBool DRTRTDoseROISequence::isValid() const } -unsigned long DRTRTDoseROISequence::getNumberOfItems() const +size_t DRTRTDoseROISequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -328,12 +328,12 @@ OFCondition DRTRTDoseROISequence::gotoNextItem() } -OFCondition DRTRTDoseROISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRTDoseROISequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -348,12 +348,12 @@ OFCondition DRTRTDoseROISequence::gotoItem(const unsigned long num, OFListIterat } -OFCondition DRTRTDoseROISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRTDoseROISequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -368,7 +368,7 @@ OFCondition DRTRTDoseROISequence::gotoItem(const unsigned long num, OFListConstI } -OFCondition DRTRTDoseROISequence::gotoItem(const unsigned long num) +OFCondition DRTRTDoseROISequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -404,7 +404,7 @@ const DRTRTDoseROISequence::Item &DRTRTDoseROISequence::getCurrentItem() const } -OFCondition DRTRTDoseROISequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRTDoseROISequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -414,7 +414,7 @@ OFCondition DRTRTDoseROISequence::getItem(const unsigned long num, Item *&item) } -DRTRTDoseROISequence::Item &DRTRTDoseROISequence::getItem(const unsigned long num) +DRTRTDoseROISequence::Item &DRTRTDoseROISequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -424,7 +424,7 @@ DRTRTDoseROISequence::Item &DRTRTDoseROISequence::getItem(const unsigned long nu } -const DRTRTDoseROISequence::Item &DRTRTDoseROISequence::getItem(const unsigned long num) const +const DRTRTDoseROISequence::Item &DRTRTDoseROISequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -434,13 +434,13 @@ const DRTRTDoseROISequence::Item &DRTRTDoseROISequence::getItem(const unsigned l } -DRTRTDoseROISequence::Item &DRTRTDoseROISequence::operator[](const unsigned long num) +DRTRTDoseROISequence::Item &DRTRTDoseROISequence::operator[](const size_t num) { return getItem(num); } -const DRTRTDoseROISequence::Item &DRTRTDoseROISequence::operator[](const unsigned long num) const +const DRTRTDoseROISequence::Item &DRTRTDoseROISequence::operator[](const size_t num) const { return getItem(num); } @@ -463,7 +463,7 @@ OFCondition DRTRTDoseROISequence::addItem(Item *&item) } -OFCondition DRTRTDoseROISequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRTDoseROISequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -486,7 +486,7 @@ OFCondition DRTRTDoseROISequence::insertItem(const unsigned long pos, Item *&ite } -OFCondition DRTRTDoseROISequence::removeItem(const unsigned long pos) +OFCondition DRTRTDoseROISequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrdrs1.cc b/dcmrt/libsrc/drtrdrs1.cc index 4cd20b70..f4dd392f 100644 --- a/dcmrt/libsrc/drtrdrs1.cc +++ b/dcmrt/libsrc/drtrdrs1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -269,7 +269,7 @@ OFBool DRTReferencedDoseReferenceSequenceInRTBeamsModule::isValid() const } -unsigned long DRTReferencedDoseReferenceSequenceInRTBeamsModule::getNumberOfItems() const +size_t DRTReferencedDoseReferenceSequenceInRTBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -299,12 +299,12 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoNextItem() } -OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -319,12 +319,12 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const un } -OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,7 +339,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const un } -OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -375,7 +375,7 @@ const DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDose } -OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -385,7 +385,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::getItem(const uns } -DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::getItem(const unsigned long num) +DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -395,7 +395,7 @@ DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseRefere } -const DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::getItem(const unsigned long num) const +const DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -405,13 +405,13 @@ const DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDose } -DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::operator[](const unsigned long num) +DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::operator[](const unsigned long num) const +const DRTReferencedDoseReferenceSequenceInRTBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -434,7 +434,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::addItem(Item *&it } -OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -457,7 +457,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::insertItem(const } -OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedDoseReferenceSequenceInRTBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrdrs6.cc b/dcmrt/libsrc/drtrdrs6.cc index 00610038..6b0a8273 100644 --- a/dcmrt/libsrc/drtrdrs6.cc +++ b/dcmrt/libsrc/drtrdrs6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -269,7 +269,7 @@ OFBool DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::isValid() const } -unsigned long DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -299,12 +299,12 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoNextItem() } -OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -319,12 +319,12 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const } -OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,7 +339,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const } -OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -375,7 +375,7 @@ const DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedD } -OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -385,7 +385,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getItem(const } -DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -395,7 +395,7 @@ DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseRef } -const DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -405,13 +405,13 @@ const DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedD } -DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::Item &DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -434,7 +434,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::addItem(Item * } -OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -457,7 +457,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::insertItem(con } -OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedDoseReferenceSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrdrs8.cc b/dcmrt/libsrc/drtrdrs8.cc index 0dadddd9..acf00012 100644 --- a/dcmrt/libsrc/drtrdrs8.cc +++ b/dcmrt/libsrc/drtrdrs8.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -649,7 +649,7 @@ OFBool DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::isValid() con } -unsigned long DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getNumberOfItems() const +size_t DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -679,12 +679,12 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoNext } -OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -699,12 +699,12 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem } -OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -719,7 +719,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem } -OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -755,7 +755,7 @@ const DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTRefer } -OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -765,7 +765,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getItem( } -DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getItem(const unsigned long num) +DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -775,7 +775,7 @@ DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedD } -const DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getItem(const unsigned long num) const +const DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -785,13 +785,13 @@ const DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTRefer } -DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::operator[](const unsigned long num) +DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::operator[](const unsigned long num) const +const DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::Item &DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::operator[](const size_t num) const { return getItem(num); } @@ -814,7 +814,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::addItem( } -OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -837,7 +837,7 @@ OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::insertIt } -OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrds.cc b/dcmrt/libsrc/drtrds.cc index 9db4526f..eab2439e 100644 --- a/dcmrt/libsrc/drtrds.cc +++ b/dcmrt/libsrc/drtrds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedDoseSequence::isValid() const } -unsigned long DRTReferencedDoseSequence::getNumberOfItems() const +size_t DRTReferencedDoseSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedDoseSequence::gotoNextItem() } -OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedDoseSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedDoseSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedDoseSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getCurrentItem } -OFCondition DRTReferencedDoseSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedDoseSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedDoseSequence::getItem(const unsigned long num, Item *&i } -DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const unsigned long num) +DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const unsign } -const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const unsigned long num) const +const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const } -DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::operator[](const unsigned long num) +DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::operator[](const unsigned long num) const +const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedDoseSequence::addItem(Item *&item) } -OFCondition DRTReferencedDoseSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedDoseSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedDoseSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTReferencedDoseSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedDoseSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrecs.cc b/dcmrt/libsrc/drtrecs.cc index ec67009a..ceae6fb1 100644 --- a/dcmrt/libsrc/drtrecs.cc +++ b/dcmrt/libsrc/drtrecs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTROIElementalCompositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -243,7 +243,7 @@ OFBool DRTROIElementalCompositionSequence::isValid() const } -unsigned long DRTROIElementalCompositionSequence::getNumberOfItems() const +size_t DRTROIElementalCompositionSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -273,12 +273,12 @@ OFCondition DRTROIElementalCompositionSequence::gotoNextItem() } -OFCondition DRTROIElementalCompositionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTROIElementalCompositionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -293,12 +293,12 @@ OFCondition DRTROIElementalCompositionSequence::gotoItem(const unsigned long num } -OFCondition DRTROIElementalCompositionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTROIElementalCompositionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -313,7 +313,7 @@ OFCondition DRTROIElementalCompositionSequence::gotoItem(const unsigned long num } -OFCondition DRTROIElementalCompositionSequence::gotoItem(const unsigned long num) +OFCondition DRTROIElementalCompositionSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -349,7 +349,7 @@ const DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequen } -OFCondition DRTROIElementalCompositionSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTROIElementalCompositionSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -359,7 +359,7 @@ OFCondition DRTROIElementalCompositionSequence::getItem(const unsigned long num, } -DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::getItem(const unsigned long num) +DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -369,7 +369,7 @@ DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::ge } -const DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::getItem(const unsigned long num) const +const DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -379,13 +379,13 @@ const DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequen } -DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::operator[](const unsigned long num) +DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::operator[](const size_t num) { return getItem(num); } -const DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::operator[](const unsigned long num) const +const DRTROIElementalCompositionSequence::Item &DRTROIElementalCompositionSequence::operator[](const size_t num) const { return getItem(num); } @@ -408,7 +408,7 @@ OFCondition DRTROIElementalCompositionSequence::addItem(Item *&item) } -OFCondition DRTROIElementalCompositionSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTROIElementalCompositionSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -431,7 +431,7 @@ OFCondition DRTROIElementalCompositionSequence::insertItem(const unsigned long p } -OFCondition DRTROIElementalCompositionSequence::removeItem(const unsigned long pos) +OFCondition DRTROIElementalCompositionSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrfgs.cc b/dcmrt/libsrc/drtrfgs.cc index e82a2865..57959a63 100644 --- a/dcmrt/libsrc/drtrfgs.cc +++ b/dcmrt/libsrc/drtrfgs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -245,7 +245,7 @@ OFBool DRTReferencedFractionGroupSequence::isValid() const } -unsigned long DRTReferencedFractionGroupSequence::getNumberOfItems() const +size_t DRTReferencedFractionGroupSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -275,12 +275,12 @@ OFCondition DRTReferencedFractionGroupSequence::gotoNextItem() } -OFCondition DRTReferencedFractionGroupSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedFractionGroupSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -295,12 +295,12 @@ OFCondition DRTReferencedFractionGroupSequence::gotoItem(const unsigned long num } -OFCondition DRTReferencedFractionGroupSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedFractionGroupSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -315,7 +315,7 @@ OFCondition DRTReferencedFractionGroupSequence::gotoItem(const unsigned long num } -OFCondition DRTReferencedFractionGroupSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedFractionGroupSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -351,7 +351,7 @@ const DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequen } -OFCondition DRTReferencedFractionGroupSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedFractionGroupSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -361,7 +361,7 @@ OFCondition DRTReferencedFractionGroupSequence::getItem(const unsigned long num, } -DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::getItem(const unsigned long num) +DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -371,7 +371,7 @@ DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::ge } -const DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::getItem(const unsigned long num) const +const DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -381,13 +381,13 @@ const DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequen } -DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::operator[](const unsigned long num) +DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::operator[](const unsigned long num) const +const DRTReferencedFractionGroupSequence::Item &DRTReferencedFractionGroupSequence::operator[](const size_t num) const { return getItem(num); } @@ -410,7 +410,7 @@ OFCondition DRTReferencedFractionGroupSequence::addItem(Item *&item) } -OFCondition DRTReferencedFractionGroupSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedFractionGroupSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -433,7 +433,7 @@ OFCondition DRTReferencedFractionGroupSequence::insertItem(const unsigned long p } -OFCondition DRTReferencedFractionGroupSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedFractionGroupSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrfors.cc b/dcmrt/libsrc/drtrfors.cc index a8b33d04..859edc49 100644 --- a/dcmrt/libsrc/drtrfors.cc +++ b/dcmrt/libsrc/drtrfors.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedFrameOfReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -229,7 +229,7 @@ OFBool DRTReferencedFrameOfReferenceSequence::isValid() const } -unsigned long DRTReferencedFrameOfReferenceSequence::getNumberOfItems() const +size_t DRTReferencedFrameOfReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -259,12 +259,12 @@ OFCondition DRTReferencedFrameOfReferenceSequence::gotoNextItem() } -OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -279,12 +279,12 @@ OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const unsigned long } -OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -299,7 +299,7 @@ OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const unsigned long } -OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedFrameOfReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -335,7 +335,7 @@ const DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReference } -OFCondition DRTReferencedFrameOfReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedFrameOfReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -345,7 +345,7 @@ OFCondition DRTReferencedFrameOfReferenceSequence::getItem(const unsigned long n } -DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::getItem(const unsigned long num) +DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -355,7 +355,7 @@ DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequen } -const DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::getItem(const unsigned long num) const +const DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -365,13 +365,13 @@ const DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReference } -DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::operator[](const unsigned long num) +DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::operator[](const unsigned long num) const +const DRTReferencedFrameOfReferenceSequence::Item &DRTReferencedFrameOfReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -394,7 +394,7 @@ OFCondition DRTReferencedFrameOfReferenceSequence::addItem(Item *&item) } -OFCondition DRTReferencedFrameOfReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedFrameOfReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -417,7 +417,7 @@ OFCondition DRTReferencedFrameOfReferenceSequence::insertItem(const unsigned lon } -OFCondition DRTReferencedFrameOfReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedFrameOfReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrics.cc b/dcmrt/libsrc/drtrics.cc index 8b21d114..d3257981 100644 --- a/dcmrt/libsrc/drtrics.cc +++ b/dcmrt/libsrc/drtrics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTROIIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,7 +34,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), + SegmentedPropertyTypeModifierCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), URNCodeValue(DCM_URNCodeValue) { } @@ -55,7 +57,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), + SegmentedPropertyTypeModifierCodeSequence(copy.SegmentedPropertyTypeModifierCodeSequence), URNCodeValue(copy.URNCodeValue) { } @@ -84,7 +88,9 @@ DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::It EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; + SegmentedPropertyTypeModifierCodeSequence = copy.SegmentedPropertyTypeModifierCodeSequence; URNCodeValue = copy.URNCodeValue; } return *this; @@ -107,10 +113,12 @@ void DRTRTROIIdentificationCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); ContextGroupExtensionCreatorUID.clear(); + SegmentedPropertyTypeModifierCodeSequence.clear(); } } @@ -128,10 +136,12 @@ OFBool DRTRTROIIdentificationCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && - ContextGroupExtensionCreatorUID.isEmpty(); + ContextGroupExtensionCreatorUID.isEmpty() && + SegmentedPropertyTypeModifierCodeSequence.isEmpty(); } @@ -159,10 +169,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RTROIIdentificationCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "RTROIIdentificationCodeSequence"); + SegmentedPropertyTypeModifierCodeSequence.read(item, "1-n", "3", "RTROIIdentificationCodeSequence"); result = EC_Normal; } return result; @@ -186,10 +198,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RTROIIdentificationCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "RTROIIdentificationCodeSequence"); + if (result.good()) result = SegmentedPropertyTypeModifierCodeSequence.write(item, "1-n", "3", "RTROIIdentificationCodeSequence"); } return result; } @@ -303,6 +317,15 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResource(OFStrin } +OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +500,19 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResource(const O } +OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +642,7 @@ OFBool DRTRTROIIdentificationCodeSequence::isValid() const } -unsigned long DRTRTROIIdentificationCodeSequence::getNumberOfItems() const +size_t DRTRTROIIdentificationCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +672,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::gotoNextItem() } -OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +692,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const unsigned long num } -OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +712,7 @@ OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const unsigned long num } -OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTRTROIIdentificationCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +748,7 @@ const DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequen } -OFCondition DRTRTROIIdentificationCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRTROIIdentificationCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +758,7 @@ OFCondition DRTRTROIIdentificationCodeSequence::getItem(const unsigned long num, } -DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::getItem(const unsigned long num) +DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +768,7 @@ DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::ge } -const DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::getItem(const unsigned long num) const +const DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +778,13 @@ const DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequen } -DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::operator[](const unsigned long num) +DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::operator[](const unsigned long num) const +const DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +807,7 @@ OFCondition DRTRTROIIdentificationCodeSequence::addItem(Item *&item) } -OFCondition DRTRTROIIdentificationCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRTROIIdentificationCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +830,7 @@ OFCondition DRTRTROIIdentificationCodeSequence::insertItem(const unsigned long p } -OFCondition DRTRTROIIdentificationCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTRTROIIdentificationCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrims.cc b/dcmrt/libsrc/drtrims.cc index 27c69269..4c43af93 100644 --- a/dcmrt/libsrc/drtrims.cc +++ b/dcmrt/libsrc/drtrims.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -321,7 +321,7 @@ OFBool DRTReferencedImageSequence::isValid() const } -unsigned long DRTReferencedImageSequence::getNumberOfItems() const +size_t DRTReferencedImageSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -351,12 +351,12 @@ OFCondition DRTReferencedImageSequence::gotoNextItem() } -OFCondition DRTReferencedImageSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedImageSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -371,12 +371,12 @@ OFCondition DRTReferencedImageSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTReferencedImageSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedImageSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -391,7 +391,7 @@ OFCondition DRTReferencedImageSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTReferencedImageSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedImageSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -427,7 +427,7 @@ const DRTReferencedImageSequence::Item &DRTReferencedImageSequence::getCurrentIt } -OFCondition DRTReferencedImageSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedImageSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -437,7 +437,7 @@ OFCondition DRTReferencedImageSequence::getItem(const unsigned long num, Item *& } -DRTReferencedImageSequence::Item &DRTReferencedImageSequence::getItem(const unsigned long num) +DRTReferencedImageSequence::Item &DRTReferencedImageSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -447,7 +447,7 @@ DRTReferencedImageSequence::Item &DRTReferencedImageSequence::getItem(const unsi } -const DRTReferencedImageSequence::Item &DRTReferencedImageSequence::getItem(const unsigned long num) const +const DRTReferencedImageSequence::Item &DRTReferencedImageSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -457,13 +457,13 @@ const DRTReferencedImageSequence::Item &DRTReferencedImageSequence::getItem(cons } -DRTReferencedImageSequence::Item &DRTReferencedImageSequence::operator[](const unsigned long num) +DRTReferencedImageSequence::Item &DRTReferencedImageSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedImageSequence::Item &DRTReferencedImageSequence::operator[](const unsigned long num) const +const DRTReferencedImageSequence::Item &DRTReferencedImageSequence::operator[](const size_t num) const { return getItem(num); } @@ -486,7 +486,7 @@ OFCondition DRTReferencedImageSequence::addItem(Item *&item) } -OFCondition DRTReferencedImageSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedImageSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -509,7 +509,7 @@ OFCondition DRTReferencedImageSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTReferencedImageSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedImageSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtris.cc b/dcmrt/libsrc/drtris.cc index 4628e263..b42fdd7f 100644 --- a/dcmrt/libsrc/drtris.cc +++ b/dcmrt/libsrc/drtris.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedInstanceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -258,7 +258,7 @@ OFBool DRTReferencedInstanceSequence::isValid() const } -unsigned long DRTReferencedInstanceSequence::getNumberOfItems() const +size_t DRTReferencedInstanceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -288,12 +288,12 @@ OFCondition DRTReferencedInstanceSequence::gotoNextItem() } -OFCondition DRTReferencedInstanceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedInstanceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -308,12 +308,12 @@ OFCondition DRTReferencedInstanceSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTReferencedInstanceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedInstanceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -328,7 +328,7 @@ OFCondition DRTReferencedInstanceSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTReferencedInstanceSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedInstanceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -364,7 +364,7 @@ const DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::getCur } -OFCondition DRTReferencedInstanceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedInstanceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -374,7 +374,7 @@ OFCondition DRTReferencedInstanceSequence::getItem(const unsigned long num, Item } -DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::getItem(const unsigned long num) +DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -384,7 +384,7 @@ DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::getItem(cons } -const DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::getItem(const unsigned long num) const +const DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -394,13 +394,13 @@ const DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::getIte } -DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::operator[](const unsigned long num) +DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::operator[](const unsigned long num) const +const DRTReferencedInstanceSequence::Item &DRTReferencedInstanceSequence::operator[](const size_t num) const { return getItem(num); } @@ -423,7 +423,7 @@ OFCondition DRTReferencedInstanceSequence::addItem(Item *&item) } -OFCondition DRTReferencedInstanceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedInstanceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -446,7 +446,7 @@ OFCondition DRTReferencedInstanceSequence::insertItem(const unsigned long pos, I } -OFCondition DRTReferencedInstanceSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedInstanceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrlsds.cc b/dcmrt/libsrc/drtrlsds.cc index 41c2ead7..c5111df2 100644 --- a/dcmrt/libsrc/drtrlsds.cc +++ b/dcmrt/libsrc/drtrlsds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -289,7 +289,7 @@ OFBool DRTRecordedLateralSpreadingDeviceSequence::isValid() const } -unsigned long DRTRecordedLateralSpreadingDeviceSequence::getNumberOfItems() const +size_t DRTRecordedLateralSpreadingDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -319,12 +319,12 @@ OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoNextItem() } -OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,12 +339,12 @@ OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const unsigned l } -OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,7 +359,7 @@ OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const unsigned l } -OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTRecordedLateralSpreadingDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -395,7 +395,7 @@ const DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadi } -OFCondition DRTRecordedLateralSpreadingDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRecordedLateralSpreadingDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -405,7 +405,7 @@ OFCondition DRTRecordedLateralSpreadingDeviceSequence::getItem(const unsigned lo } -DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::getItem(const unsigned long num) +DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -415,7 +415,7 @@ DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDevi } -const DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::getItem(const unsigned long num) const +const DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -425,13 +425,13 @@ const DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadi } -DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::operator[](const unsigned long num) +DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::operator[](const unsigned long num) const +const DRTRecordedLateralSpreadingDeviceSequence::Item &DRTRecordedLateralSpreadingDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -454,7 +454,7 @@ OFCondition DRTRecordedLateralSpreadingDeviceSequence::addItem(Item *&item) } -OFCondition DRTRecordedLateralSpreadingDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRecordedLateralSpreadingDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -477,7 +477,7 @@ OFCondition DRTRecordedLateralSpreadingDeviceSequence::insertItem(const unsigned } -OFCondition DRTRecordedLateralSpreadingDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTRecordedLateralSpreadingDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrmdrs.cc b/dcmrt/libsrc/drtrmdrs.cc index f1548d24..bcd7a9e6 100644 --- a/dcmrt/libsrc/drtrmdrs.cc +++ b/dcmrt/libsrc/drtrmdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -307,7 +307,7 @@ OFBool DRTReferencedMeasuredDoseReferenceSequence::isValid() const } -unsigned long DRTReferencedMeasuredDoseReferenceSequence::getNumberOfItems() const +size_t DRTReferencedMeasuredDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -337,12 +337,12 @@ OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoNextItem() } -OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -357,12 +357,12 @@ OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const unsigned } -OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -377,7 +377,7 @@ OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const unsigned } -OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedMeasuredDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -413,7 +413,7 @@ const DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDos } -OFCondition DRTReferencedMeasuredDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedMeasuredDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -423,7 +423,7 @@ OFCondition DRTReferencedMeasuredDoseReferenceSequence::getItem(const unsigned l } -DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::getItem(const unsigned long num) +DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -433,7 +433,7 @@ DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseRefer } -const DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::getItem(const unsigned long num) const +const DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -443,13 +443,13 @@ const DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDos } -DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::operator[](const unsigned long num) +DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::operator[](const unsigned long num) const +const DRTReferencedMeasuredDoseReferenceSequence::Item &DRTReferencedMeasuredDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -472,7 +472,7 @@ OFCondition DRTReferencedMeasuredDoseReferenceSequence::addItem(Item *&item) } -OFCondition DRTReferencedMeasuredDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedMeasuredDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -495,7 +495,7 @@ OFCondition DRTReferencedMeasuredDoseReferenceSequence::insertItem(const unsigne } -OFCondition DRTReferencedMeasuredDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedMeasuredDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrms.cc b/dcmrt/libsrc/drtrms.cc index e13e9d35..5cddda49 100644 --- a/dcmrt/libsrc/drtrms.cc +++ b/dcmrt/libsrc/drtrms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -376,7 +376,7 @@ OFBool DRTRangeModulatorSequence::isValid() const } -unsigned long DRTRangeModulatorSequence::getNumberOfItems() const +size_t DRTRangeModulatorSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -406,12 +406,12 @@ OFCondition DRTRangeModulatorSequence::gotoNextItem() } -OFCondition DRTRangeModulatorSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRangeModulatorSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -426,12 +426,12 @@ OFCondition DRTRangeModulatorSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTRangeModulatorSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRangeModulatorSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -446,7 +446,7 @@ OFCondition DRTRangeModulatorSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTRangeModulatorSequence::gotoItem(const unsigned long num) +OFCondition DRTRangeModulatorSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -482,7 +482,7 @@ const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getCurrentItem } -OFCondition DRTRangeModulatorSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRangeModulatorSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -492,7 +492,7 @@ OFCondition DRTRangeModulatorSequence::getItem(const unsigned long num, Item *&i } -DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const unsigned long num) +DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -502,7 +502,7 @@ DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const unsign } -const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const unsigned long num) const +const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -512,13 +512,13 @@ const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::getItem(const } -DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::operator[](const unsigned long num) +DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::operator[](const size_t num) { return getItem(num); } -const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::operator[](const unsigned long num) const +const DRTRangeModulatorSequence::Item &DRTRangeModulatorSequence::operator[](const size_t num) const { return getItem(num); } @@ -541,7 +541,7 @@ OFCondition DRTRangeModulatorSequence::addItem(Item *&item) } -OFCondition DRTRangeModulatorSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRangeModulatorSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -564,7 +564,7 @@ OFCondition DRTRangeModulatorSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTRangeModulatorSequence::removeItem(const unsigned long pos) +OFCondition DRTRangeModulatorSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrmss6.cc b/dcmrt/libsrc/drtrmss6.cc index d1710aee..bea2e30a 100644 --- a/dcmrt/libsrc/drtrmss6.cc +++ b/dcmrt/libsrc/drtrmss6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -356,7 +356,7 @@ OFBool DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::isValid() const } -unsigned long DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -386,12 +386,12 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoNextItem() } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -406,12 +406,12 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -426,7 +426,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -462,7 +462,7 @@ const DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulat } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -472,7 +472,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getItem(const u } -DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -482,7 +482,7 @@ DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSett } -const DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -492,13 +492,13 @@ const DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulat } -DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -521,7 +521,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::addItem(Item *& } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -544,7 +544,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::insertItem(cons } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrmss7.cc b/dcmrt/libsrc/drtrmss7.cc index 125b195e..9f0d5005 100644 --- a/dcmrt/libsrc/drtrmss7.cc +++ b/dcmrt/libsrc/drtrmss7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -281,7 +281,7 @@ OFBool DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::isValid } -unsigned long DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const +size_t DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -311,12 +311,12 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::go } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -331,12 +331,12 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::go } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -351,7 +351,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::go } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -387,7 +387,7 @@ const DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DR } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -397,7 +397,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::ge } -DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) +DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -407,7 +407,7 @@ DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRange } -const DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) const +const DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -417,13 +417,13 @@ const DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DR } -DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) +DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) const +const DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -446,7 +446,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::ad } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -469,7 +469,7 @@ OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::in } -OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::removeItem(const unsigned long pos) +OFCondition DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrpcs.cc b/dcmrt/libsrc/drtrpcs.cc index 093a758a..3a59a8d3 100644 --- a/dcmrt/libsrc/drtrpcs.cc +++ b/dcmrt/libsrc/drtrpcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTRequestedProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTRequestedProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestedProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestedProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestedProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestedProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResource(const OF } +OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTRequestedProcedureCodeSequence::isValid() const } -unsigned long DRTRequestedProcedureCodeSequence::getNumberOfItems() const +size_t DRTRequestedProcedureCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTRequestedProcedureCodeSequence::gotoNextItem() } -OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTRequestedProcedureCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence } -OFCondition DRTRequestedProcedureCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRequestedProcedureCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTRequestedProcedureCodeSequence::getItem(const unsigned long num, } -DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::getItem(const unsigned long num) +DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::getI } -const DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::getItem(const unsigned long num) const +const DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence } -DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::operator[](const unsigned long num) +DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::operator[](const unsigned long num) const +const DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTRequestedProcedureCodeSequence::addItem(Item *&item) } -OFCondition DRTRequestedProcedureCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRequestedProcedureCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTRequestedProcedureCodeSequence::insertItem(const unsigned long po } -OFCondition DRTRequestedProcedureCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTRequestedProcedureCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrpis.cc b/dcmrt/libsrc/drtrpis.cc index 0fd7a5d4..3369bfa0 100644 --- a/dcmrt/libsrc/drtrpis.cc +++ b/dcmrt/libsrc/drtrpis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferringPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -352,7 +352,7 @@ OFBool DRTReferringPhysicianIdentificationSequence::isValid() const } -unsigned long DRTReferringPhysicianIdentificationSequence::getNumberOfItems() const +size_t DRTReferringPhysicianIdentificationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -382,12 +382,12 @@ OFCondition DRTReferringPhysicianIdentificationSequence::gotoNextItem() } -OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -402,12 +402,12 @@ OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const unsigned } -OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -422,7 +422,7 @@ OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const unsigned } -OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const unsigned long num) +OFCondition DRTReferringPhysicianIdentificationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -458,7 +458,7 @@ const DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianId } -OFCondition DRTReferringPhysicianIdentificationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferringPhysicianIdentificationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -468,7 +468,7 @@ OFCondition DRTReferringPhysicianIdentificationSequence::getItem(const unsigned } -DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::getItem(const unsigned long num) +DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -478,7 +478,7 @@ DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentifi } -const DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::getItem(const unsigned long num) const +const DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -488,13 +488,13 @@ const DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianId } -DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::operator[](const unsigned long num) +DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::operator[](const unsigned long num) const +const DRTReferringPhysicianIdentificationSequence::Item &DRTReferringPhysicianIdentificationSequence::operator[](const size_t num) const { return getItem(num); } @@ -517,7 +517,7 @@ OFCondition DRTReferringPhysicianIdentificationSequence::addItem(Item *&item) } -OFCondition DRTReferringPhysicianIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferringPhysicianIdentificationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -540,7 +540,7 @@ OFCondition DRTReferringPhysicianIdentificationSequence::insertItem(const unsign } -OFCondition DRTReferringPhysicianIdentificationSequence::removeItem(const unsigned long pos) +OFCondition DRTReferringPhysicianIdentificationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrppcs.cc b/dcmrt/libsrc/drtrppcs.cc index 53cd0a23..11d2affc 100644 --- a/dcmrt/libsrc/drtrppcs.cc +++ b/dcmrt/libsrc/drtrppcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReasonForPerformedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const OFBool emptyDefault EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedure EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTReasonForPerformedProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTReasonForPerformedProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::read(DcmItem &item getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForPerformedProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::write(DcmItem &ite addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForPerformedProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResource } +OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResource } +OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTReasonForPerformedProcedureCodeSequence::isValid() const } -unsigned long DRTReasonForPerformedProcedureCodeSequence::getNumberOfItems() const +size_t DRTReasonForPerformedProcedureCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoNextItem() } -OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const unsigned } -OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const unsigned } -OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTReasonForPerformedProcedureCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedPro } -OFCondition DRTReasonForPerformedProcedureCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReasonForPerformedProcedureCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::getItem(const unsigned l } -DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::getItem(const unsigned long num) +DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedure } -const DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::getItem(const unsigned long num) const +const DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedPro } -DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::operator[](const unsigned long num) +DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::operator[](const unsigned long num) const +const DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedureCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::addItem(Item *&item) } -OFCondition DRTReasonForPerformedProcedureCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReasonForPerformedProcedureCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::insertItem(const unsigne } -OFCondition DRTReasonForPerformedProcedureCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTReasonForPerformedProcedureCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrpphs.cc b/dcmrt/libsrc/drtrpphs.cc index 0a8910b9..7fcf7547 100644 --- a/dcmrt/libsrc/drtrpphs.cc +++ b/dcmrt/libsrc/drtrpphs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedPatientPhotoSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -322,7 +322,7 @@ OFBool DRTReferencedPatientPhotoSequence::isValid() const } -unsigned long DRTReferencedPatientPhotoSequence::getNumberOfItems() const +size_t DRTReferencedPatientPhotoSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -352,12 +352,12 @@ OFCondition DRTReferencedPatientPhotoSequence::gotoNextItem() } -OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -372,12 +372,12 @@ OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const unsigned long num, } -OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -392,7 +392,7 @@ OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const unsigned long num, } -OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedPatientPhotoSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -428,7 +428,7 @@ const DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence } -OFCondition DRTReferencedPatientPhotoSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedPatientPhotoSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -438,7 +438,7 @@ OFCondition DRTReferencedPatientPhotoSequence::getItem(const unsigned long num, } -DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::getItem(const unsigned long num) +DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -448,7 +448,7 @@ DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::getI } -const DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::getItem(const unsigned long num) const +const DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -458,13 +458,13 @@ const DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence } -DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::operator[](const unsigned long num) +DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::operator[](const unsigned long num) const +const DRTReferencedPatientPhotoSequence::Item &DRTReferencedPatientPhotoSequence::operator[](const size_t num) const { return getItem(num); } @@ -487,7 +487,7 @@ OFCondition DRTReferencedPatientPhotoSequence::addItem(Item *&item) } -OFCondition DRTReferencedPatientPhotoSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedPatientPhotoSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -510,7 +510,7 @@ OFCondition DRTReferencedPatientPhotoSequence::insertItem(const unsigned long po } -OFCondition DRTReferencedPatientPhotoSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedPatientPhotoSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrpps.cc b/dcmrt/libsrc/drtrpps.cc index 6eb0ef4d..86219b5c 100644 --- a/dcmrt/libsrc/drtrpps.cc +++ b/dcmrt/libsrc/drtrpps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTROIPhysicalPropertiesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -267,7 +267,7 @@ OFBool DRTROIPhysicalPropertiesSequence::isValid() const } -unsigned long DRTROIPhysicalPropertiesSequence::getNumberOfItems() const +size_t DRTROIPhysicalPropertiesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -297,12 +297,12 @@ OFCondition DRTROIPhysicalPropertiesSequence::gotoNextItem() } -OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -317,12 +317,12 @@ OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const unsigned long num, } -OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -337,7 +337,7 @@ OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const unsigned long num, } -OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const unsigned long num) +OFCondition DRTROIPhysicalPropertiesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -373,7 +373,7 @@ const DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence:: } -OFCondition DRTROIPhysicalPropertiesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTROIPhysicalPropertiesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -383,7 +383,7 @@ OFCondition DRTROIPhysicalPropertiesSequence::getItem(const unsigned long num, I } -DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::getItem(const unsigned long num) +DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -393,7 +393,7 @@ DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::getIte } -const DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::getItem(const unsigned long num) const +const DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -403,13 +403,13 @@ const DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence:: } -DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::operator[](const unsigned long num) +DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::operator[](const size_t num) { return getItem(num); } -const DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::operator[](const unsigned long num) const +const DRTROIPhysicalPropertiesSequence::Item &DRTROIPhysicalPropertiesSequence::operator[](const size_t num) const { return getItem(num); } @@ -432,7 +432,7 @@ OFCondition DRTROIPhysicalPropertiesSequence::addItem(Item *&item) } -OFCondition DRTROIPhysicalPropertiesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTROIPhysicalPropertiesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -455,7 +455,7 @@ OFCondition DRTROIPhysicalPropertiesSequence::insertItem(const unsigned long pos } -OFCondition DRTROIPhysicalPropertiesSequence::removeItem(const unsigned long pos) +OFCondition DRTROIPhysicalPropertiesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrppss.cc b/dcmrt/libsrc/drtrppss.cc index 14f07440..2f63d819 100644 --- a/dcmrt/libsrc/drtrppss.cc +++ b/dcmrt/libsrc/drtrppss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedPerformedProcedureStepSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedPerformedProcedureStepSequence::isValid() const } -unsigned long DRTReferencedPerformedProcedureStepSequence::getNumberOfItems() const +size_t DRTReferencedPerformedProcedureStepSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedPerformedProcedureStepSequence::gotoNextItem() } -OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const unsigned } -OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const unsigned } -OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedPerformedProcedureStepSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedP } -OFCondition DRTReferencedPerformedProcedureStepSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedPerformedProcedureStepSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedPerformedProcedureStepSequence::getItem(const unsigned } -DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::getItem(const unsigned long num) +DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedu } -const DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::getItem(const unsigned long num) const +const DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedP } -DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::operator[](const unsigned long num) +DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::operator[](const unsigned long num) const +const DRTReferencedPerformedProcedureStepSequence::Item &DRTReferencedPerformedProcedureStepSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedPerformedProcedureStepSequence::addItem(Item *&item) } -OFCondition DRTReferencedPerformedProcedureStepSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedPerformedProcedureStepSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedPerformedProcedureStepSequence::insertItem(const unsign } -OFCondition DRTReferencedPerformedProcedureStepSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedPerformedProcedureStepSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrps.cc b/dcmrt/libsrc/drtrps.cc index 03e800ef..b5d807cd 100644 --- a/dcmrt/libsrc/drtrps.cc +++ b/dcmrt/libsrc/drtrps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedPatientSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedPatientSequence::isValid() const } -unsigned long DRTReferencedPatientSequence::getNumberOfItems() const +size_t DRTReferencedPatientSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedPatientSequence::gotoNextItem() } -OFCondition DRTReferencedPatientSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedPatientSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedPatientSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTReferencedPatientSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedPatientSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedPatientSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTReferencedPatientSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedPatientSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::getCurre } -OFCondition DRTReferencedPatientSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedPatientSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedPatientSequence::getItem(const unsigned long num, Item } -DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::getItem(const unsigned long num) +DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::getItem(const } -const DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::getItem(const unsigned long num) const +const DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::getItem( } -DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::operator[](const unsigned long num) +DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::operator[](const unsigned long num) const +const DRTReferencedPatientSequence::Item &DRTReferencedPatientSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedPatientSequence::addItem(Item *&item) } -OFCondition DRTReferencedPatientSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedPatientSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedPatientSequence::insertItem(const unsigned long pos, It } -OFCondition DRTReferencedPatientSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedPatientSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrris1.cc b/dcmrt/libsrc/drtrris1.cc index 0feb9585..0747d4d6 100644 --- a/dcmrt/libsrc/drtrris1.cc +++ b/dcmrt/libsrc/drtrris1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedReferenceImageSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -365,7 +365,7 @@ OFBool DRTReferencedReferenceImageSequenceInRTBeamsModule::isValid() const } -unsigned long DRTReferencedReferenceImageSequenceInRTBeamsModule::getNumberOfItems() const +size_t DRTReferencedReferenceImageSequenceInRTBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -395,12 +395,12 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoNextItem() } -OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -415,12 +415,12 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const u } -OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -435,7 +435,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const u } -OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -471,7 +471,7 @@ const DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedRef } -OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -481,7 +481,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::getItem(const un } -DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::getItem(const unsigned long num) +DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -491,7 +491,7 @@ DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReference } -const DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::getItem(const unsigned long num) const +const DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -501,13 +501,13 @@ const DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedRef } -DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::operator[](const unsigned long num) +DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::operator[](const unsigned long num) const +const DRTReferencedReferenceImageSequenceInRTBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -530,7 +530,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::addItem(Item *&i } -OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -553,7 +553,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::insertItem(const } -OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedReferenceImageSequenceInRTBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrris6.cc b/dcmrt/libsrc/drtrris6.cc index d583bd4e..5588adc4 100644 --- a/dcmrt/libsrc/drtrris6.cc +++ b/dcmrt/libsrc/drtrris6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -289,7 +289,7 @@ OFBool DRTReferencedReferenceImageSequenceInRTIonBeamsModule::isValid() const } -unsigned long DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -319,12 +319,12 @@ OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoNextItem( } -OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,12 +339,12 @@ OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(cons } -OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,7 +359,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(cons } -OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -395,7 +395,7 @@ const DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferenced } -OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -405,7 +405,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getItem(const } -DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -415,7 +415,7 @@ DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedRefere } -const DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -425,13 +425,13 @@ const DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferenced } -DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTReferencedReferenceImageSequenceInRTIonBeamsModule::Item &DRTReferencedReferenceImageSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -454,7 +454,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::addItem(Item } -OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -477,7 +477,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::insertItem(co } -OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedReferenceImageSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrris9.cc b/dcmrt/libsrc/drtrris9.cc index 3f51ce5d..7e2ae516 100644 --- a/dcmrt/libsrc/drtrris9.cc +++ b/dcmrt/libsrc/drtrris9.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::isV } -unsigned long DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getNumberOfItems() const +size_t DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule } -OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule } -OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule } -OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item } -OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule } -DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getItem(const unsigned long num) +DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTR } -const DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getItem(const unsigned long num) const +const DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item } -DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::operator[](const unsigned long num) +DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::operator[](const unsigned long num) const +const DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::Item &DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule } -OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule } -OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrms.cc b/dcmrt/libsrc/drtrrms.cc index 1938aae7..ad6a01ff 100644 --- a/dcmrt/libsrc/drtrrms.cc +++ b/dcmrt/libsrc/drtrrms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -347,7 +347,7 @@ OFBool DRTRecordedRangeModulatorSequence::isValid() const } -unsigned long DRTRecordedRangeModulatorSequence::getNumberOfItems() const +size_t DRTRecordedRangeModulatorSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -377,12 +377,12 @@ OFCondition DRTRecordedRangeModulatorSequence::gotoNextItem() } -OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -397,12 +397,12 @@ OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const unsigned long num, } -OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -417,7 +417,7 @@ OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const unsigned long num, } -OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const unsigned long num) +OFCondition DRTRecordedRangeModulatorSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -453,7 +453,7 @@ const DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence } -OFCondition DRTRecordedRangeModulatorSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRecordedRangeModulatorSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -463,7 +463,7 @@ OFCondition DRTRecordedRangeModulatorSequence::getItem(const unsigned long num, } -DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::getItem(const unsigned long num) +DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -473,7 +473,7 @@ DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::getI } -const DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::getItem(const unsigned long num) const +const DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -483,13 +483,13 @@ const DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence } -DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::operator[](const unsigned long num) +DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::operator[](const size_t num) { return getItem(num); } -const DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::operator[](const unsigned long num) const +const DRTRecordedRangeModulatorSequence::Item &DRTRecordedRangeModulatorSequence::operator[](const size_t num) const { return getItem(num); } @@ -512,7 +512,7 @@ OFCondition DRTRecordedRangeModulatorSequence::addItem(Item *&item) } -OFCondition DRTRecordedRangeModulatorSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRecordedRangeModulatorSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -535,7 +535,7 @@ OFCondition DRTRecordedRangeModulatorSequence::insertItem(const unsigned long po } -OFCondition DRTRecordedRangeModulatorSequence::removeItem(const unsigned long pos) +OFCondition DRTRecordedRangeModulatorSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrros.cc b/dcmrt/libsrc/drtrros.cc index 5d8ad67f..f38c2a37 100644 --- a/dcmrt/libsrc/drtrros.cc +++ b/dcmrt/libsrc/drtrros.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -21,7 +21,6 @@ DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), - AdditionalRTROIIdentificationCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), MaterialID(DCM_MaterialID), ObservationNumber(DCM_ObservationNumber), ROIInterpreter(DCM_ROIInterpreter), @@ -40,7 +39,6 @@ DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem) DRTRTROIObservationsSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), - AdditionalRTROIIdentificationCodeSequence(copy.AdditionalRTROIIdentificationCodeSequence), MaterialID(copy.MaterialID), ObservationNumber(copy.ObservationNumber), ROIInterpreter(copy.ROIInterpreter), @@ -67,7 +65,6 @@ DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::Item::operator if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; - AdditionalRTROIIdentificationCodeSequence = copy.AdditionalRTROIIdentificationCodeSequence; MaterialID = copy.MaterialID; ObservationNumber = copy.ObservationNumber; ROIInterpreter = copy.ROIInterpreter; @@ -97,7 +94,6 @@ void DRTRTROIObservationsSequence::Item::clear() RTRelatedROISequence.clear(); SegmentedPropertyCategoryCodeSequence.clear(); RTROIIdentificationCodeSequence.clear(); - AdditionalRTROIIdentificationCodeSequence.clear(); RelatedRTROIObservationsSequence.clear(); RTROIInterpretedType.clear(); ROIInterpreter.clear(); @@ -116,7 +112,6 @@ OFBool DRTRTROIObservationsSequence::Item::isEmpty() RTRelatedROISequence.isEmpty() && SegmentedPropertyCategoryCodeSequence.isEmpty() && RTROIIdentificationCodeSequence.isEmpty() && - AdditionalRTROIIdentificationCodeSequence.isEmpty() && RelatedRTROIObservationsSequence.isEmpty() && RTROIInterpretedType.isEmpty() && ROIInterpreter.isEmpty() && @@ -145,7 +140,6 @@ OFCondition DRTRTROIObservationsSequence::Item::read(DcmItem &item) RTRelatedROISequence.read(item, "1-n", "3", "RTROIObservationsSequence"); SegmentedPropertyCategoryCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); RTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); - AdditionalRTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); RelatedRTROIObservationsSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); getAndCheckElementFromDataset(item, RTROIInterpretedType, "1", "2", "RTROIObservationsSequence"); getAndCheckElementFromDataset(item, ROIInterpreter, "1", "2", "RTROIObservationsSequence"); @@ -170,7 +164,6 @@ OFCondition DRTRTROIObservationsSequence::Item::write(DcmItem &item) if (result.good()) result = RTRelatedROISequence.write(item, "1-n", "3", "RTROIObservationsSequence"); if (result.good()) result = SegmentedPropertyCategoryCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); if (result.good()) result = RTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); - if (result.good()) result = AdditionalRTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); if (result.good()) result = RelatedRTROIObservationsSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); addElementToDataset(result, item, new DcmCodeString(RTROIInterpretedType), "1", "2", "RTROIObservationsSequence"); addElementToDataset(result, item, new DcmPersonName(ROIInterpreter), "1", "2", "RTROIObservationsSequence"); @@ -456,7 +449,7 @@ OFBool DRTRTROIObservationsSequence::isValid() const } -unsigned long DRTRTROIObservationsSequence::getNumberOfItems() const +size_t DRTRTROIObservationsSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -486,12 +479,12 @@ OFCondition DRTRTROIObservationsSequence::gotoNextItem() } -OFCondition DRTRTROIObservationsSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRTROIObservationsSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -506,12 +499,12 @@ OFCondition DRTRTROIObservationsSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTRTROIObservationsSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRTROIObservationsSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -526,7 +519,7 @@ OFCondition DRTRTROIObservationsSequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTRTROIObservationsSequence::gotoItem(const unsigned long num) +OFCondition DRTRTROIObservationsSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -562,7 +555,7 @@ const DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::getCurre } -OFCondition DRTRTROIObservationsSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRTROIObservationsSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -572,7 +565,7 @@ OFCondition DRTRTROIObservationsSequence::getItem(const unsigned long num, Item } -DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::getItem(const unsigned long num) +DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -582,7 +575,7 @@ DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::getItem(const } -const DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::getItem(const unsigned long num) const +const DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -592,13 +585,13 @@ const DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::getItem( } -DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::operator[](const unsigned long num) +DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::operator[](const size_t num) { return getItem(num); } -const DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::operator[](const unsigned long num) const +const DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::operator[](const size_t num) const { return getItem(num); } @@ -621,7 +614,7 @@ OFCondition DRTRTROIObservationsSequence::addItem(Item *&item) } -OFCondition DRTRTROIObservationsSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRTROIObservationsSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -644,7 +637,7 @@ OFCondition DRTRTROIObservationsSequence::insertItem(const unsigned long pos, It } -OFCondition DRTRTROIObservationsSequence::removeItem(const unsigned long pos) +OFCondition DRTRTROIObservationsSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrpcs.cc b/dcmrt/libsrc/drtrrpcs.cc index 8847f972..0b062bcd 100644 --- a/dcmrt/libsrc/drtrrpcs.cc +++ b/dcmrt/libsrc/drtrrpcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReasonForRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefault EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedure EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTReasonForRequestedProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTReasonForRequestedProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::read(DcmItem &item getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForRequestedProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::write(DcmItem &ite addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForRequestedProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResource } +OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResource } +OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTReasonForRequestedProcedureCodeSequence::isValid() const } -unsigned long DRTReasonForRequestedProcedureCodeSequence::getNumberOfItems() const +size_t DRTReasonForRequestedProcedureCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoNextItem() } -OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const unsigned } -OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const unsigned } -OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTReasonForRequestedProcedureCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedPro } -OFCondition DRTReasonForRequestedProcedureCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReasonForRequestedProcedureCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::getItem(const unsigned l } -DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::getItem(const unsigned long num) +DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedure } -const DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::getItem(const unsigned long num) const +const DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedPro } -DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::operator[](const unsigned long num) +DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::operator[](const unsigned long num) const +const DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedureCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::addItem(Item *&item) } -OFCondition DRTReasonForRequestedProcedureCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReasonForRequestedProcedureCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::insertItem(const unsigne } -OFCondition DRTReasonForRequestedProcedureCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTReasonForRequestedProcedureCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrros.cc b/dcmrt/libsrc/drtrrros.cc index e11fe871..8451732d 100644 --- a/dcmrt/libsrc/drtrrros.cc +++ b/dcmrt/libsrc/drtrrros.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRelatedRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -231,7 +231,7 @@ OFBool DRTRelatedRTROIObservationsSequence::isValid() const } -unsigned long DRTRelatedRTROIObservationsSequence::getNumberOfItems() const +size_t DRTRelatedRTROIObservationsSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -261,12 +261,12 @@ OFCondition DRTRelatedRTROIObservationsSequence::gotoNextItem() } -OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -281,12 +281,12 @@ OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const unsigned long nu } -OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,7 +301,7 @@ OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const unsigned long nu } -OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const unsigned long num) +OFCondition DRTRelatedRTROIObservationsSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -337,7 +337,7 @@ const DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequ } -OFCondition DRTRelatedRTROIObservationsSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRelatedRTROIObservationsSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -347,7 +347,7 @@ OFCondition DRTRelatedRTROIObservationsSequence::getItem(const unsigned long num } -DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::getItem(const unsigned long num) +DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -357,7 +357,7 @@ DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence:: } -const DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::getItem(const unsigned long num) const +const DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -367,13 +367,13 @@ const DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequ } -DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::operator[](const unsigned long num) +DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::operator[](const size_t num) { return getItem(num); } -const DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::operator[](const unsigned long num) const +const DRTRelatedRTROIObservationsSequence::Item &DRTRelatedRTROIObservationsSequence::operator[](const size_t num) const { return getItem(num); } @@ -396,7 +396,7 @@ OFCondition DRTRelatedRTROIObservationsSequence::addItem(Item *&item) } -OFCondition DRTRelatedRTROIObservationsSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRelatedRTROIObservationsSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -419,7 +419,7 @@ OFCondition DRTRelatedRTROIObservationsSequence::insertItem(const unsigned long } -OFCondition DRTRelatedRTROIObservationsSequence::removeItem(const unsigned long pos) +OFCondition DRTRelatedRTROIObservationsSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrs.cc b/dcmrt/libsrc/drtrrs.cc index d149cb82..1ec2b8d4 100644 --- a/dcmrt/libsrc/drtrrs.cc +++ b/dcmrt/libsrc/drtrrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTRelatedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTRTRelatedROISequence::isValid() const } -unsigned long DRTRTRelatedROISequence::getNumberOfItems() const +size_t DRTRTRelatedROISequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTRTRelatedROISequence::gotoNextItem() } -OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRTRelatedROISequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListIte } -OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRTRelatedROISequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListCon } -OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num) +OFCondition DRTRTRelatedROISequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getCurrentItem() c } -OFCondition DRTRTRelatedROISequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRTRelatedROISequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTRTRelatedROISequence::getItem(const unsigned long num, Item *&ite } -DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsigned long num) +DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsigned l } -const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsigned long num) const +const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsi } -DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::operator[](const unsigned long num) +DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::operator[](const size_t num) { return getItem(num); } -const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::operator[](const unsigned long num) const +const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTRTRelatedROISequence::addItem(Item *&item) } -OFCondition DRTRTRelatedROISequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRTRelatedROISequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTRTRelatedROISequence::insertItem(const unsigned long pos, Item *& } -OFCondition DRTRTRelatedROISequence::removeItem(const unsigned long pos) +OFCondition DRTRTRelatedROISequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrshs.cc b/dcmrt/libsrc/drtrrshs.cc index b2988b09..5d7880d9 100644 --- a/dcmrt/libsrc/drtrrshs.cc +++ b/dcmrt/libsrc/drtrrshs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -289,7 +289,7 @@ OFBool DRTRecordedRangeShifterSequence::isValid() const } -unsigned long DRTRecordedRangeShifterSequence::getNumberOfItems() const +size_t DRTRecordedRangeShifterSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -319,12 +319,12 @@ OFCondition DRTRecordedRangeShifterSequence::gotoNextItem() } -OFCondition DRTRecordedRangeShifterSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRecordedRangeShifterSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -339,12 +339,12 @@ OFCondition DRTRecordedRangeShifterSequence::gotoItem(const unsigned long num, O } -OFCondition DRTRecordedRangeShifterSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRecordedRangeShifterSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -359,7 +359,7 @@ OFCondition DRTRecordedRangeShifterSequence::gotoItem(const unsigned long num, O } -OFCondition DRTRecordedRangeShifterSequence::gotoItem(const unsigned long num) +OFCondition DRTRecordedRangeShifterSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -395,7 +395,7 @@ const DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::ge } -OFCondition DRTRecordedRangeShifterSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRecordedRangeShifterSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -405,7 +405,7 @@ OFCondition DRTRecordedRangeShifterSequence::getItem(const unsigned long num, It } -DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::getItem(const unsigned long num) +DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -415,7 +415,7 @@ DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::getItem( } -const DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::getItem(const unsigned long num) const +const DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -425,13 +425,13 @@ const DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::ge } -DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::operator[](const unsigned long num) +DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::operator[](const size_t num) { return getItem(num); } -const DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::operator[](const unsigned long num) const +const DRTRecordedRangeShifterSequence::Item &DRTRecordedRangeShifterSequence::operator[](const size_t num) const { return getItem(num); } @@ -454,7 +454,7 @@ OFCondition DRTRecordedRangeShifterSequence::addItem(Item *&item) } -OFCondition DRTRecordedRangeShifterSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRecordedRangeShifterSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -477,7 +477,7 @@ OFCondition DRTRecordedRangeShifterSequence::insertItem(const unsigned long pos, } -OFCondition DRTRecordedRangeShifterSequence::removeItem(const unsigned long pos) +OFCondition DRTRecordedRangeShifterSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrtps.cc b/dcmrt/libsrc/drtrrtps.cc index 2e16c556..614263e9 100644 --- a/dcmrt/libsrc/drtrrtps.cc +++ b/dcmrt/libsrc/drtrrtps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -258,7 +258,7 @@ OFBool DRTReferencedRTPlanSequence::isValid() const } -unsigned long DRTReferencedRTPlanSequence::getNumberOfItems() const +size_t DRTReferencedRTPlanSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -288,12 +288,12 @@ OFCondition DRTReferencedRTPlanSequence::gotoNextItem() } -OFCondition DRTReferencedRTPlanSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedRTPlanSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -308,12 +308,12 @@ OFCondition DRTReferencedRTPlanSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTReferencedRTPlanSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedRTPlanSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -328,7 +328,7 @@ OFCondition DRTReferencedRTPlanSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTReferencedRTPlanSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedRTPlanSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -364,7 +364,7 @@ const DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::getCurrent } -OFCondition DRTReferencedRTPlanSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedRTPlanSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -374,7 +374,7 @@ OFCondition DRTReferencedRTPlanSequence::getItem(const unsigned long num, Item * } -DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::getItem(const unsigned long num) +DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -384,7 +384,7 @@ DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::getItem(const un } -const DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::getItem(const unsigned long num) const +const DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -394,13 +394,13 @@ const DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::getItem(co } -DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::operator[](const unsigned long num) +DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::operator[](const unsigned long num) const +const DRTReferencedRTPlanSequence::Item &DRTReferencedRTPlanSequence::operator[](const size_t num) const { return getItem(num); } @@ -423,7 +423,7 @@ OFCondition DRTReferencedRTPlanSequence::addItem(Item *&item) } -OFCondition DRTReferencedRTPlanSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedRTPlanSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -446,7 +446,7 @@ OFCondition DRTReferencedRTPlanSequence::insertItem(const unsigned long pos, Ite } -OFCondition DRTReferencedRTPlanSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedRTPlanSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrtps3.cc b/dcmrt/libsrc/drtrrtps3.cc index 3f084b00..a148443e 100644 --- a/dcmrt/libsrc/drtrrtps3.cc +++ b/dcmrt/libsrc/drtrrtps3.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -280,7 +280,7 @@ OFBool DRTReferencedRTPlanSequenceInRTGeneralPlanModule::isValid() const } -unsigned long DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getNumberOfItems() const +size_t DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -310,12 +310,12 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoNextItem() } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,12 +330,12 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const uns } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -350,7 +350,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const uns } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -386,7 +386,7 @@ const DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPla } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -396,7 +396,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getItem(const unsi } -DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getItem(const unsigned long num) +DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -406,7 +406,7 @@ DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSeque } -const DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getItem(const unsigned long num) const +const DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -416,13 +416,13 @@ const DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPla } -DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::operator[](const unsigned long num) +DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::operator[](const unsigned long num) const +const DRTReferencedRTPlanSequenceInRTGeneralPlanModule::Item &DRTReferencedRTPlanSequenceInRTGeneralPlanModule::operator[](const size_t num) const { return getItem(num); } @@ -445,7 +445,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::addItem(Item *&ite } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -468,7 +468,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::insertItem(const u } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralPlanModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrtps4.cc b/dcmrt/libsrc/drtrrtps4.cc index 008b6c43..14fdcd2d 100644 --- a/dcmrt/libsrc/drtrrtps4.cc +++ b/dcmrt/libsrc/drtrrtps4.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::isValid() co } -unsigned long DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getNumberOfItems() const +size_t DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoNex } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoIte } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoIte } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTRefe } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getItem } -DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num) +DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferenced } -const DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num) const +const DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTRefe } -DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::operator[](const unsigned long num) +DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::operator[](const unsigned long num) const +const DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::addItem } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::insertI } -OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrrtps5.cc b/dcmrt/libsrc/drtrrtps5.cc index 830ede14..e9d244e1 100644 --- a/dcmrt/libsrc/drtrrtps5.cc +++ b/dcmrt/libsrc/drtrrtps5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedRTPlanSequenceInRTImageModule::isValid() const } -unsigned long DRTReferencedRTPlanSequenceInRTImageModule::getNumberOfItems() const +size_t DRTReferencedRTPlanSequenceInRTImageModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoNextItem() } -OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const unsigned } -OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const unsigned } -OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedRTPlanSequenceInRTImageModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSeque } -OFCondition DRTReferencedRTPlanSequenceInRTImageModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedRTPlanSequenceInRTImageModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTImageModule::getItem(const unsigned l } -DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::getItem(const unsigned long num) +DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInR } -const DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::getItem(const unsigned long num) const +const DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSeque } -DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::operator[](const unsigned long num) +DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::operator[](const unsigned long num) const +const DRTReferencedRTPlanSequenceInRTImageModule::Item &DRTReferencedRTPlanSequenceInRTImageModule::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTImageModule::addItem(Item *&item) } -OFCondition DRTReferencedRTPlanSequenceInRTImageModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedRTPlanSequenceInRTImageModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedRTPlanSequenceInRTImageModule::insertItem(const unsigne } -OFCondition DRTReferencedRTPlanSequenceInRTImageModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedRTPlanSequenceInRTImageModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrscs.cc b/dcmrt/libsrc/drtrscs.cc index c31e213d..30553c26 100644 --- a/dcmrt/libsrc/drtrscs.cc +++ b/dcmrt/libsrc/drtrscs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRequestingServiceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTRequestingServiceCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTRequestingServiceCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestingServiceCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestingServiceCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestingServiceCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestingServiceCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTRequestingServiceCodeSequence::isValid() const } -unsigned long DRTRequestingServiceCodeSequence::getNumberOfItems() const +size_t DRTRequestingServiceCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTRequestingServiceCodeSequence::gotoNextItem() } -OFCondition DRTRequestingServiceCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRequestingServiceCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTRequestingServiceCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTRequestingServiceCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRequestingServiceCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTRequestingServiceCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTRequestingServiceCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTRequestingServiceCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence:: } -OFCondition DRTRequestingServiceCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRequestingServiceCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTRequestingServiceCodeSequence::getItem(const unsigned long num, I } -DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::getItem(const unsigned long num) +DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::getIte } -const DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::getItem(const unsigned long num) const +const DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence:: } -DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::operator[](const unsigned long num) +DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::operator[](const unsigned long num) const +const DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTRequestingServiceCodeSequence::addItem(Item *&item) } -OFCondition DRTRequestingServiceCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRequestingServiceCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTRequestingServiceCodeSequence::insertItem(const unsigned long pos } -OFCondition DRTRequestingServiceCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTRequestingServiceCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrsers.cc b/dcmrt/libsrc/drtrsers.cc index fa949ae8..f7f95f3c 100644 --- a/dcmrt/libsrc/drtrsers.cc +++ b/dcmrt/libsrc/drtrsers.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -229,7 +229,7 @@ OFBool DRTReferencedSeriesSequence::isValid() const } -unsigned long DRTReferencedSeriesSequence::getNumberOfItems() const +size_t DRTReferencedSeriesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -259,12 +259,12 @@ OFCondition DRTReferencedSeriesSequence::gotoNextItem() } -OFCondition DRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedSeriesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -279,12 +279,12 @@ OFCondition DRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedSeriesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -299,7 +299,7 @@ OFCondition DRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFLis } -OFCondition DRTReferencedSeriesSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedSeriesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -335,7 +335,7 @@ const DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::getCurrent } -OFCondition DRTReferencedSeriesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedSeriesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -345,7 +345,7 @@ OFCondition DRTReferencedSeriesSequence::getItem(const unsigned long num, Item * } -DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::getItem(const unsigned long num) +DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -355,7 +355,7 @@ DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::getItem(const un } -const DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::getItem(const unsigned long num) const +const DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -365,13 +365,13 @@ const DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::getItem(co } -DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::operator[](const unsigned long num) +DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::operator[](const unsigned long num) const +const DRTReferencedSeriesSequence::Item &DRTReferencedSeriesSequence::operator[](const size_t num) const { return getItem(num); } @@ -394,7 +394,7 @@ OFCondition DRTReferencedSeriesSequence::addItem(Item *&item) } -OFCondition DRTReferencedSeriesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedSeriesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -417,7 +417,7 @@ OFCondition DRTReferencedSeriesSequence::insertItem(const unsigned long pos, Ite } -OFCondition DRTReferencedSeriesSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedSeriesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrses.cc b/dcmrt/libsrc/drtrses.cc index c373227d..7ffe7274 100644 --- a/dcmrt/libsrc/drtrses.cc +++ b/dcmrt/libsrc/drtrses.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -229,7 +229,7 @@ OFBool DRTRTReferencedSeriesSequence::isValid() const } -unsigned long DRTRTReferencedSeriesSequence::getNumberOfItems() const +size_t DRTRTReferencedSeriesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -259,12 +259,12 @@ OFCondition DRTRTReferencedSeriesSequence::gotoNextItem() } -OFCondition DRTRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRTReferencedSeriesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -279,12 +279,12 @@ OFCondition DRTRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRTReferencedSeriesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -299,7 +299,7 @@ OFCondition DRTRTReferencedSeriesSequence::gotoItem(const unsigned long num, OFL } -OFCondition DRTRTReferencedSeriesSequence::gotoItem(const unsigned long num) +OFCondition DRTRTReferencedSeriesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -335,7 +335,7 @@ const DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::getCur } -OFCondition DRTRTReferencedSeriesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRTReferencedSeriesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -345,7 +345,7 @@ OFCondition DRTRTReferencedSeriesSequence::getItem(const unsigned long num, Item } -DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::getItem(const unsigned long num) +DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -355,7 +355,7 @@ DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::getItem(cons } -const DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::getItem(const unsigned long num) const +const DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -365,13 +365,13 @@ const DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::getIte } -DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::operator[](const unsigned long num) +DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::operator[](const size_t num) { return getItem(num); } -const DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::operator[](const unsigned long num) const +const DRTRTReferencedSeriesSequence::Item &DRTRTReferencedSeriesSequence::operator[](const size_t num) const { return getItem(num); } @@ -394,7 +394,7 @@ OFCondition DRTRTReferencedSeriesSequence::addItem(Item *&item) } -OFCondition DRTRTReferencedSeriesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRTReferencedSeriesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -417,7 +417,7 @@ OFCondition DRTRTReferencedSeriesSequence::insertItem(const unsigned long pos, I } -OFCondition DRTRTReferencedSeriesSequence::removeItem(const unsigned long pos) +OFCondition DRTRTReferencedSeriesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrshs.cc b/dcmrt/libsrc/drtrshs.cc index 42d12baf..b3be62ef 100644 --- a/dcmrt/libsrc/drtrshs.cc +++ b/dcmrt/libsrc/drtrshs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -347,7 +347,7 @@ OFBool DRTRangeShifterSequence::isValid() const } -unsigned long DRTRangeShifterSequence::getNumberOfItems() const +size_t DRTRangeShifterSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -377,12 +377,12 @@ OFCondition DRTRangeShifterSequence::gotoNextItem() } -OFCondition DRTRangeShifterSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRangeShifterSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -397,12 +397,12 @@ OFCondition DRTRangeShifterSequence::gotoItem(const unsigned long num, OFListIte } -OFCondition DRTRangeShifterSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRangeShifterSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -417,7 +417,7 @@ OFCondition DRTRangeShifterSequence::gotoItem(const unsigned long num, OFListCon } -OFCondition DRTRangeShifterSequence::gotoItem(const unsigned long num) +OFCondition DRTRangeShifterSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -453,7 +453,7 @@ const DRTRangeShifterSequence::Item &DRTRangeShifterSequence::getCurrentItem() c } -OFCondition DRTRangeShifterSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRangeShifterSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -463,7 +463,7 @@ OFCondition DRTRangeShifterSequence::getItem(const unsigned long num, Item *&ite } -DRTRangeShifterSequence::Item &DRTRangeShifterSequence::getItem(const unsigned long num) +DRTRangeShifterSequence::Item &DRTRangeShifterSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -473,7 +473,7 @@ DRTRangeShifterSequence::Item &DRTRangeShifterSequence::getItem(const unsigned l } -const DRTRangeShifterSequence::Item &DRTRangeShifterSequence::getItem(const unsigned long num) const +const DRTRangeShifterSequence::Item &DRTRangeShifterSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -483,13 +483,13 @@ const DRTRangeShifterSequence::Item &DRTRangeShifterSequence::getItem(const unsi } -DRTRangeShifterSequence::Item &DRTRangeShifterSequence::operator[](const unsigned long num) +DRTRangeShifterSequence::Item &DRTRangeShifterSequence::operator[](const size_t num) { return getItem(num); } -const DRTRangeShifterSequence::Item &DRTRangeShifterSequence::operator[](const unsigned long num) const +const DRTRangeShifterSequence::Item &DRTRangeShifterSequence::operator[](const size_t num) const { return getItem(num); } @@ -512,7 +512,7 @@ OFCondition DRTRangeShifterSequence::addItem(Item *&item) } -OFCondition DRTRangeShifterSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRangeShifterSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -535,7 +535,7 @@ OFCondition DRTRangeShifterSequence::insertItem(const unsigned long pos, Item *& } -OFCondition DRTRangeShifterSequence::removeItem(const unsigned long pos) +OFCondition DRTRangeShifterSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrshs6.cc b/dcmrt/libsrc/drtrshs6.cc index cfc26d58..1cdb86da 100644 --- a/dcmrt/libsrc/drtrshs6.cc +++ b/dcmrt/libsrc/drtrshs6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -310,7 +310,7 @@ OFBool DRTRangeShifterSettingsSequenceInRTIonBeamsModule::isValid() const } -unsigned long DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getNumberOfItems() const +size_t DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -340,12 +340,12 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoNextItem() } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -360,12 +360,12 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const un } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -380,7 +380,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const un } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const unsigned long num) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -416,7 +416,7 @@ const DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSe } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -426,7 +426,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getItem(const uns } -DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num) +DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -436,7 +436,7 @@ DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettings } -const DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getItem(const unsigned long num) const +const DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -446,13 +446,13 @@ const DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSe } -DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::operator[](const unsigned long num) +DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::operator[](const size_t num) { return getItem(num); } -const DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::operator[](const unsigned long num) const +const DRTRangeShifterSettingsSequenceInRTIonBeamsModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsModule::operator[](const size_t num) const { return getItem(num); } @@ -475,7 +475,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::addItem(Item *&it } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -498,7 +498,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::insertItem(const } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::removeItem(const unsigned long pos) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrshs7.cc b/dcmrt/libsrc/drtrshs7.cc index 8f63f780..1e25bcac 100644 --- a/dcmrt/libsrc/drtrshs7.cc +++ b/dcmrt/libsrc/drtrshs7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::isValid() } -unsigned long DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const +size_t DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::goto } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::goto } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::goto } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const unsigned long num) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTR } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getI } -DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) +DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeSh } -const DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const unsigned long num) const +const DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTR } -DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) +DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const unsigned long num) const +const DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::Item &DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::addI } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::inse } -OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::removeItem(const unsigned long pos) +OFCondition DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrsis.cc b/dcmrt/libsrc/drtrsis.cc index 302f3713..dbf05440 100644 --- a/dcmrt/libsrc/drtrsis.cc +++ b/dcmrt/libsrc/drtrsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSetupImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -343,7 +343,7 @@ OFBool DRTReferencedSetupImageSequence::isValid() const } -unsigned long DRTReferencedSetupImageSequence::getNumberOfItems() const +size_t DRTReferencedSetupImageSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -373,12 +373,12 @@ OFCondition DRTReferencedSetupImageSequence::gotoNextItem() } -OFCondition DRTReferencedSetupImageSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedSetupImageSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -393,12 +393,12 @@ OFCondition DRTReferencedSetupImageSequence::gotoItem(const unsigned long num, O } -OFCondition DRTReferencedSetupImageSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedSetupImageSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -413,7 +413,7 @@ OFCondition DRTReferencedSetupImageSequence::gotoItem(const unsigned long num, O } -OFCondition DRTReferencedSetupImageSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedSetupImageSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -449,7 +449,7 @@ const DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::ge } -OFCondition DRTReferencedSetupImageSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedSetupImageSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -459,7 +459,7 @@ OFCondition DRTReferencedSetupImageSequence::getItem(const unsigned long num, It } -DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::getItem(const unsigned long num) +DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -469,7 +469,7 @@ DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::getItem( } -const DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::getItem(const unsigned long num) const +const DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -479,13 +479,13 @@ const DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::ge } -DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::operator[](const unsigned long num) +DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::operator[](const unsigned long num) const +const DRTReferencedSetupImageSequence::Item &DRTReferencedSetupImageSequence::operator[](const size_t num) const { return getItem(num); } @@ -508,7 +508,7 @@ OFCondition DRTReferencedSetupImageSequence::addItem(Item *&item) } -OFCondition DRTReferencedSetupImageSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedSetupImageSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -531,7 +531,7 @@ OFCondition DRTReferencedSetupImageSequence::insertItem(const unsigned long pos, } -OFCondition DRTReferencedSetupImageSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedSetupImageSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrsns.cc b/dcmrt/libsrc/drtrsns.cc index bbe4571c..12474be3 100644 --- a/dcmrt/libsrc/drtrsns.cc +++ b/dcmrt/libsrc/drtrsns.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTRecordedSnoutSequence::isValid() const } -unsigned long DRTRecordedSnoutSequence::getNumberOfItems() const +size_t DRTRecordedSnoutSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTRecordedSnoutSequence::gotoNextItem() } -OFCondition DRTRecordedSnoutSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRecordedSnoutSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTRecordedSnoutSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTRecordedSnoutSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRecordedSnoutSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTRecordedSnoutSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTRecordedSnoutSequence::gotoItem(const unsigned long num) +OFCondition DRTRecordedSnoutSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::getCurrentItem() } -OFCondition DRTRecordedSnoutSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRecordedSnoutSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTRecordedSnoutSequence::getItem(const unsigned long num, Item *&it } -DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::getItem(const unsigned long num) +DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::getItem(const unsigned } -const DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::getItem(const unsigned long num) const +const DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::getItem(const un } -DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::operator[](const unsigned long num) +DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::operator[](const size_t num) { return getItem(num); } -const DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::operator[](const unsigned long num) const +const DRTRecordedSnoutSequence::Item &DRTRecordedSnoutSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTRecordedSnoutSequence::addItem(Item *&item) } -OFCondition DRTRecordedSnoutSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRecordedSnoutSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTRecordedSnoutSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTRecordedSnoutSequence::removeItem(const unsigned long pos) +OFCondition DRTRecordedSnoutSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrsos.cc b/dcmrt/libsrc/drtrsos.cc index 857ed829..290392d0 100644 --- a/dcmrt/libsrc/drtrsos.cc +++ b/dcmrt/libsrc/drtrsos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSOPSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -343,7 +343,7 @@ OFBool DRTReferencedSOPSequence::isValid() const } -unsigned long DRTReferencedSOPSequence::getNumberOfItems() const +size_t DRTReferencedSOPSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -373,12 +373,12 @@ OFCondition DRTReferencedSOPSequence::gotoNextItem() } -OFCondition DRTReferencedSOPSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedSOPSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -393,12 +393,12 @@ OFCondition DRTReferencedSOPSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTReferencedSOPSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedSOPSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -413,7 +413,7 @@ OFCondition DRTReferencedSOPSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTReferencedSOPSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedSOPSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -449,7 +449,7 @@ const DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::getCurrentItem() } -OFCondition DRTReferencedSOPSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedSOPSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -459,7 +459,7 @@ OFCondition DRTReferencedSOPSequence::getItem(const unsigned long num, Item *&it } -DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::getItem(const unsigned long num) +DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -469,7 +469,7 @@ DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::getItem(const unsigned } -const DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::getItem(const unsigned long num) const +const DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -479,13 +479,13 @@ const DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::getItem(const un } -DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::operator[](const unsigned long num) +DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::operator[](const unsigned long num) const +const DRTReferencedSOPSequence::Item &DRTReferencedSOPSequence::operator[](const size_t num) const { return getItem(num); } @@ -508,7 +508,7 @@ OFCondition DRTReferencedSOPSequence::addItem(Item *&item) } -OFCondition DRTReferencedSOPSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedSOPSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -531,7 +531,7 @@ OFCondition DRTReferencedSOPSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTReferencedSOPSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedSOPSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrsrs.cc b/dcmrt/libsrc/drtrsrs.cc index a36e5c1a..fb355057 100644 --- a/dcmrt/libsrc/drtrsrs.cc +++ b/dcmrt/libsrc/drtrsrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSpatialRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedSpatialRegistrationSequence::isValid() const } -unsigned long DRTReferencedSpatialRegistrationSequence::getNumberOfItems() const +size_t DRTReferencedSpatialRegistrationSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedSpatialRegistrationSequence::gotoNextItem() } -OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned lo } -OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned lo } -OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegist } -OFCondition DRTReferencedSpatialRegistrationSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedSpatialRegistrationSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::getItem(const unsigned lon } -DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getItem(const unsigned long num) +DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistration } -const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getItem(const unsigned long num) const +const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegist } -DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::operator[](const unsigned long num) +DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::operator[](const unsigned long num) const +const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::addItem(Item *&item) } -OFCondition DRTReferencedSpatialRegistrationSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedSpatialRegistrationSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::insertItem(const unsigned } -OFCondition DRTReferencedSpatialRegistrationSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedSpatialRegistrationSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrss.cc b/dcmrt/libsrc/drtrss.cc index 0f4da67d..b909002d 100644 --- a/dcmrt/libsrc/drtrss.cc +++ b/dcmrt/libsrc/drtrss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedStudySequence::isValid() const } -unsigned long DRTReferencedStudySequence::getNumberOfItems() const +size_t DRTReferencedStudySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedStudySequence::gotoNextItem() } -OFCondition DRTReferencedStudySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedStudySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedStudySequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTReferencedStudySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedStudySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedStudySequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTReferencedStudySequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedStudySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedStudySequence::Item &DRTReferencedStudySequence::getCurrentIt } -OFCondition DRTReferencedStudySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedStudySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedStudySequence::getItem(const unsigned long num, Item *& } -DRTReferencedStudySequence::Item &DRTReferencedStudySequence::getItem(const unsigned long num) +DRTReferencedStudySequence::Item &DRTReferencedStudySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedStudySequence::Item &DRTReferencedStudySequence::getItem(const unsi } -const DRTReferencedStudySequence::Item &DRTReferencedStudySequence::getItem(const unsigned long num) const +const DRTReferencedStudySequence::Item &DRTReferencedStudySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedStudySequence::Item &DRTReferencedStudySequence::getItem(cons } -DRTReferencedStudySequence::Item &DRTReferencedStudySequence::operator[](const unsigned long num) +DRTReferencedStudySequence::Item &DRTReferencedStudySequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedStudySequence::Item &DRTReferencedStudySequence::operator[](const unsigned long num) const +const DRTReferencedStudySequence::Item &DRTReferencedStudySequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedStudySequence::addItem(Item *&item) } -OFCondition DRTReferencedStudySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedStudySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedStudySequence::insertItem(const unsigned long pos, Item } -OFCondition DRTReferencedStudySequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedStudySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrsss.cc b/dcmrt/libsrc/drtrsss.cc index 3165635b..4df2feef 100644 --- a/dcmrt/libsrc/drtrsss.cc +++ b/dcmrt/libsrc/drtrsss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedStructureSetSequence::isValid() const } -unsigned long DRTReferencedStructureSetSequence::getNumberOfItems() const +size_t DRTReferencedStructureSetSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedStructureSetSequence::gotoNextItem() } -OFCondition DRTReferencedStructureSetSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedStructureSetSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedStructureSetSequence::gotoItem(const unsigned long num, } -OFCondition DRTReferencedStructureSetSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedStructureSetSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedStructureSetSequence::gotoItem(const unsigned long num, } -OFCondition DRTReferencedStructureSetSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedStructureSetSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence } -OFCondition DRTReferencedStructureSetSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedStructureSetSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedStructureSetSequence::getItem(const unsigned long num, } -DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::getItem(const unsigned long num) +DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::getI } -const DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::getItem(const unsigned long num) const +const DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence } -DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::operator[](const unsigned long num) +DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::operator[](const unsigned long num) const +const DRTReferencedStructureSetSequence::Item &DRTReferencedStructureSetSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedStructureSetSequence::addItem(Item *&item) } -OFCondition DRTReferencedStructureSetSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedStructureSetSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedStructureSetSequence::insertItem(const unsigned long po } -OFCondition DRTReferencedStructureSetSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedStructureSetSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrsts.cc b/dcmrt/libsrc/drtrsts.cc index 90ab23cc..9281405e 100644 --- a/dcmrt/libsrc/drtrsts.cc +++ b/dcmrt/libsrc/drtrsts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -258,7 +258,7 @@ OFBool DRTRTReferencedStudySequence::isValid() const } -unsigned long DRTRTReferencedStudySequence::getNumberOfItems() const +size_t DRTRTReferencedStudySequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -288,12 +288,12 @@ OFCondition DRTRTReferencedStudySequence::gotoNextItem() } -OFCondition DRTRTReferencedStudySequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRTReferencedStudySequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -308,12 +308,12 @@ OFCondition DRTRTReferencedStudySequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTRTReferencedStudySequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRTReferencedStudySequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -328,7 +328,7 @@ OFCondition DRTRTReferencedStudySequence::gotoItem(const unsigned long num, OFLi } -OFCondition DRTRTReferencedStudySequence::gotoItem(const unsigned long num) +OFCondition DRTRTReferencedStudySequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -364,7 +364,7 @@ const DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::getCurre } -OFCondition DRTRTReferencedStudySequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRTReferencedStudySequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -374,7 +374,7 @@ OFCondition DRTRTReferencedStudySequence::getItem(const unsigned long num, Item } -DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::getItem(const unsigned long num) +DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -384,7 +384,7 @@ DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::getItem(const } -const DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::getItem(const unsigned long num) const +const DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -394,13 +394,13 @@ const DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::getItem( } -DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::operator[](const unsigned long num) +DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::operator[](const size_t num) { return getItem(num); } -const DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::operator[](const unsigned long num) const +const DRTRTReferencedStudySequence::Item &DRTRTReferencedStudySequence::operator[](const size_t num) const { return getItem(num); } @@ -423,7 +423,7 @@ OFCondition DRTRTReferencedStudySequence::addItem(Item *&item) } -OFCondition DRTRTReferencedStudySequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRTReferencedStudySequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -446,7 +446,7 @@ OFCondition DRTRTReferencedStudySequence::insertItem(const unsigned long pos, It } -OFCondition DRTRTReferencedStudySequence::removeItem(const unsigned long pos) +OFCondition DRTRTReferencedStudySequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrtrs2.cc b/dcmrt/libsrc/drtrtrs2.cc index f8824e26..c60d7f9f 100644 --- a/dcmrt/libsrc/drtrtrs2.cc +++ b/dcmrt/libsrc/drtrtrs2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -258,7 +258,7 @@ OFBool DRTReferencedTreatmentRecordSequenceInRTDoseModule::isValid() const } -unsigned long DRTReferencedTreatmentRecordSequenceInRTDoseModule::getNumberOfItems() const +size_t DRTReferencedTreatmentRecordSequenceInRTDoseModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -288,12 +288,12 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoNextItem() } -OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -308,12 +308,12 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const u } -OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -328,7 +328,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const u } -OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -364,7 +364,7 @@ const DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTre } -OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -374,7 +374,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::getItem(const un } -DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::getItem(const unsigned long num) +DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -384,7 +384,7 @@ DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatment } -const DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::getItem(const unsigned long num) const +const DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -394,13 +394,13 @@ const DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTre } -DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::operator[](const unsigned long num) +DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::operator[](const unsigned long num) const +const DRTReferencedTreatmentRecordSequenceInRTDoseModule::Item &DRTReferencedTreatmentRecordSequenceInRTDoseModule::operator[](const size_t num) const { return getItem(num); } @@ -423,7 +423,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::addItem(Item *&i } -OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -446,7 +446,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::insertItem(const } -OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedTreatmentRecordSequenceInRTDoseModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrtrs4.cc b/dcmrt/libsrc/drtrtrs4.cc index b14e8298..3bf25049 100644 --- a/dcmrt/libsrc/drtrtrs4.cc +++ b/dcmrt/libsrc/drtrtrs4.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::isV } -unsigned long DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getNumberOfItems() const +size_t DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule } -OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule } -OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule } -OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::gotoItem(const unsigned long num) +OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item } -OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule } -DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num) +DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTR } -const DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getItem(const unsigned long num) const +const DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item } -DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::operator[](const unsigned long num) +DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::operator[](const unsigned long num) const +const DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule } -OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule } -OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::removeItem(const unsigned long pos) +OFCondition DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrvis.cc b/dcmrt/libsrc/drtrvis.cc index 79341969..77d899ac 100644 --- a/dcmrt/libsrc/drtrvis.cc +++ b/dcmrt/libsrc/drtrvis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTReferencedVerificationImageSequence::isValid() const } -unsigned long DRTReferencedVerificationImageSequence::getNumberOfItems() const +size_t DRTReferencedVerificationImageSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTReferencedVerificationImageSequence::gotoNextItem() } -OFCondition DRTReferencedVerificationImageSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTReferencedVerificationImageSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTReferencedVerificationImageSequence::gotoItem(const unsigned long } -OFCondition DRTReferencedVerificationImageSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTReferencedVerificationImageSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTReferencedVerificationImageSequence::gotoItem(const unsigned long } -OFCondition DRTReferencedVerificationImageSequence::gotoItem(const unsigned long num) +OFCondition DRTReferencedVerificationImageSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationIma } -OFCondition DRTReferencedVerificationImageSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTReferencedVerificationImageSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTReferencedVerificationImageSequence::getItem(const unsigned long } -DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::getItem(const unsigned long num) +DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequ } -const DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::getItem(const unsigned long num) const +const DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationIma } -DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::operator[](const unsigned long num) +DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::operator[](const size_t num) { return getItem(num); } -const DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::operator[](const unsigned long num) const +const DRTReferencedVerificationImageSequence::Item &DRTReferencedVerificationImageSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTReferencedVerificationImageSequence::addItem(Item *&item) } -OFCondition DRTReferencedVerificationImageSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTReferencedVerificationImageSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTReferencedVerificationImageSequence::insertItem(const unsigned lo } -OFCondition DRTReferencedVerificationImageSequence::removeItem(const unsigned long pos) +OFCondition DRTReferencedVerificationImageSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrws.cc b/dcmrt/libsrc/drtrws.cc index c7945342..c5c10431 100644 --- a/dcmrt/libsrc/drtrws.cc +++ b/dcmrt/libsrc/drtrws.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -394,7 +394,7 @@ OFBool DRTRecordedWedgeSequence::isValid() const } -unsigned long DRTRecordedWedgeSequence::getNumberOfItems() const +size_t DRTRecordedWedgeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -424,12 +424,12 @@ OFCondition DRTRecordedWedgeSequence::gotoNextItem() } -OFCondition DRTRecordedWedgeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRecordedWedgeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -444,12 +444,12 @@ OFCondition DRTRecordedWedgeSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTRecordedWedgeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRecordedWedgeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -464,7 +464,7 @@ OFCondition DRTRecordedWedgeSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTRecordedWedgeSequence::gotoItem(const unsigned long num) +OFCondition DRTRecordedWedgeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -500,7 +500,7 @@ const DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::getCurrentItem() } -OFCondition DRTRecordedWedgeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRecordedWedgeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -510,7 +510,7 @@ OFCondition DRTRecordedWedgeSequence::getItem(const unsigned long num, Item *&it } -DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::getItem(const unsigned long num) +DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -520,7 +520,7 @@ DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::getItem(const unsigned } -const DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::getItem(const unsigned long num) const +const DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -530,13 +530,13 @@ const DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::getItem(const un } -DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::operator[](const unsigned long num) +DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::operator[](const size_t num) { return getItem(num); } -const DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::operator[](const unsigned long num) const +const DRTRecordedWedgeSequence::Item &DRTRecordedWedgeSequence::operator[](const size_t num) const { return getItem(num); } @@ -559,7 +559,7 @@ OFCondition DRTRecordedWedgeSequence::addItem(Item *&item) } -OFCondition DRTRecordedWedgeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRecordedWedgeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -582,7 +582,7 @@ OFCondition DRTRecordedWedgeSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTRecordedWedgeSequence::removeItem(const unsigned long pos) +OFCondition DRTRecordedWedgeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtrwvms.cc b/dcmrt/libsrc/drtrwvms.cc index 9f709552..89b46e2e 100644 --- a/dcmrt/libsrc/drtrwvms.cc +++ b/dcmrt/libsrc/drtrwvms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRealWorldValueMappingSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -21,6 +21,8 @@ DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + DoubleFloatRealWorldValueFirstValueMapped(DCM_DoubleFloatRealWorldValueFirstValueMapped), + DoubleFloatRealWorldValueLastValueMapped(DCM_DoubleFloatRealWorldValueLastValueMapped), LUTExplanation(DCM_LUTExplanation), LUTLabel(DCM_LUTLabel), MeasurementUnitsCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), @@ -36,6 +38,8 @@ DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem) DRTRealWorldValueMappingSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + DoubleFloatRealWorldValueFirstValueMapped(copy.DoubleFloatRealWorldValueFirstValueMapped), + DoubleFloatRealWorldValueLastValueMapped(copy.DoubleFloatRealWorldValueLastValueMapped), LUTExplanation(copy.LUTExplanation), LUTLabel(copy.LUTLabel), MeasurementUnitsCodeSequence(copy.MeasurementUnitsCodeSequence), @@ -59,6 +63,8 @@ DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::Item:: if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + DoubleFloatRealWorldValueFirstValueMapped = copy.DoubleFloatRealWorldValueFirstValueMapped; + DoubleFloatRealWorldValueLastValueMapped = copy.DoubleFloatRealWorldValueLastValueMapped; LUTExplanation = copy.LUTExplanation; LUTLabel = copy.LUTLabel; MeasurementUnitsCodeSequence = copy.MeasurementUnitsCodeSequence; @@ -80,6 +86,8 @@ void DRTRealWorldValueMappingSequence::Item::clear() /* clear all DICOM attributes */ RealWorldValueFirstValueMapped.clear(); RealWorldValueLastValueMapped.clear(); + DoubleFloatRealWorldValueFirstValueMapped.clear(); + DoubleFloatRealWorldValueLastValueMapped.clear(); RealWorldValueIntercept.clear(); RealWorldValueSlope.clear(); RealWorldValueLUTData.clear(); @@ -95,6 +103,8 @@ OFBool DRTRealWorldValueMappingSequence::Item::isEmpty() { return RealWorldValueFirstValueMapped.isEmpty() && RealWorldValueLastValueMapped.isEmpty() && + DoubleFloatRealWorldValueFirstValueMapped.isEmpty() && + DoubleFloatRealWorldValueLastValueMapped.isEmpty() && RealWorldValueIntercept.isEmpty() && RealWorldValueSlope.isEmpty() && RealWorldValueLUTData.isEmpty() && @@ -118,8 +128,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::read(DcmItem &item) { /* re-initialize object */ clear(); - getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1", "RealWorldValueMappingSequence"); - getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence"); getAndCheckElementFromDataset(item, RealWorldValueIntercept, "1", "1C", "RealWorldValueMappingSequence"); getAndCheckElementFromDataset(item, RealWorldValueSlope, "1", "1C", "RealWorldValueMappingSequence"); getAndCheckElementFromDataset(item, RealWorldValueLUTData, "1-n", "1C", "RealWorldValueMappingSequence"); @@ -139,8 +151,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item) if (!EmptyDefaultItem) { result = EC_Normal; - addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1", "RealWorldValueMappingSequence"); - addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueIntercept), "1", "1C", "RealWorldValueMappingSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueSlope), "1", "1C", "RealWorldValueMappingSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueLUTData), "1-n", "1C", "RealWorldValueMappingSequence"); @@ -153,6 +167,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item) } +OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueFirstValueMapped).getFloat64(value, pos); +} + + +OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueLastValueMapped).getFloat64(value, pos); +} + + OFCondition DRTRealWorldValueMappingSequence::Item::getLUTExplanation(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -216,6 +248,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::getRealWorldValueSlope(Float } +OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DoubleFloatRealWorldValueFirstValueMapped.putFloat64(value, pos); +} + + +OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DoubleFloatRealWorldValueLastValueMapped.putFloat64(value, pos); +} + + OFCondition DRTRealWorldValueMappingSequence::Item::setLUTExplanation(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -390,7 +440,7 @@ OFBool DRTRealWorldValueMappingSequence::isValid() const } -unsigned long DRTRealWorldValueMappingSequence::getNumberOfItems() const +size_t DRTRealWorldValueMappingSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -420,12 +470,12 @@ OFCondition DRTRealWorldValueMappingSequence::gotoNextItem() } -OFCondition DRTRealWorldValueMappingSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTRealWorldValueMappingSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -440,12 +490,12 @@ OFCondition DRTRealWorldValueMappingSequence::gotoItem(const unsigned long num, } -OFCondition DRTRealWorldValueMappingSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTRealWorldValueMappingSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -460,7 +510,7 @@ OFCondition DRTRealWorldValueMappingSequence::gotoItem(const unsigned long num, } -OFCondition DRTRealWorldValueMappingSequence::gotoItem(const unsigned long num) +OFCondition DRTRealWorldValueMappingSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -496,7 +546,7 @@ const DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence:: } -OFCondition DRTRealWorldValueMappingSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTRealWorldValueMappingSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -506,7 +556,7 @@ OFCondition DRTRealWorldValueMappingSequence::getItem(const unsigned long num, I } -DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::getItem(const unsigned long num) +DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -516,7 +566,7 @@ DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::getIte } -const DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::getItem(const unsigned long num) const +const DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -526,13 +576,13 @@ const DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence:: } -DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::operator[](const unsigned long num) +DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::operator[](const size_t num) { return getItem(num); } -const DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::operator[](const unsigned long num) const +const DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::operator[](const size_t num) const { return getItem(num); } @@ -555,7 +605,7 @@ OFCondition DRTRealWorldValueMappingSequence::addItem(Item *&item) } -OFCondition DRTRealWorldValueMappingSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTRealWorldValueMappingSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -578,7 +628,7 @@ OFCondition DRTRealWorldValueMappingSequence::insertItem(const unsigned long pos } -OFCondition DRTRealWorldValueMappingSequence::removeItem(const unsigned long pos) +OFCondition DRTRealWorldValueMappingSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtscris.cc b/dcmrt/libsrc/drtscris.cc index 78a10f0e..0edf4b47 100644 --- a/dcmrt/libsrc/drtscris.cc +++ b/dcmrt/libsrc/drtscris.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTStudiesContainingOtherReferencedInstancesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -229,7 +229,7 @@ OFBool DRTStudiesContainingOtherReferencedInstancesSequence::isValid() const } -unsigned long DRTStudiesContainingOtherReferencedInstancesSequence::getNumberOfItems() const +size_t DRTStudiesContainingOtherReferencedInstancesSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -259,12 +259,12 @@ OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoNextItem() } -OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -279,12 +279,12 @@ OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const } -OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -299,7 +299,7 @@ OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const } -OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const unsigned long num) +OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -335,7 +335,7 @@ const DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesCont } -OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -345,7 +345,7 @@ OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::getItem(const } -DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::getItem(const unsigned long num) +DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -355,7 +355,7 @@ DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContaining } -const DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::getItem(const unsigned long num) const +const DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -365,13 +365,13 @@ const DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesCont } -DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::operator[](const unsigned long num) +DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::operator[](const size_t num) { return getItem(num); } -const DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::operator[](const unsigned long num) const +const DRTStudiesContainingOtherReferencedInstancesSequence::Item &DRTStudiesContainingOtherReferencedInstancesSequence::operator[](const size_t num) const { return getItem(num); } @@ -394,7 +394,7 @@ OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::addItem(Item * } -OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -417,7 +417,7 @@ OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::insertItem(con } -OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::removeItem(const unsigned long pos) +OFCondition DRTStudiesContainingOtherReferencedInstancesSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtscs.cc b/dcmrt/libsrc/drtscs.cc new file mode 100644 index 00000000..c91297c5 --- /dev/null +++ b/dcmrt/libsrc/drtscs.cc @@ -0,0 +1,957 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTStrainCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtscs.h" + + +// --- item class --- + +DRTStrainCodeSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + CodeMeaning(DCM_CodeMeaning), + CodeValue(DCM_CodeValue), + CodingSchemeDesignator(DCM_CodingSchemeDesignator), + CodingSchemeVersion(DCM_CodingSchemeVersion), + ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), + ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), + EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + LongCodeValue(DCM_LongCodeValue), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID), + URNCodeValue(DCM_URNCodeValue) +{ +} + + +DRTStrainCodeSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + CodeMeaning(copy.CodeMeaning), + CodeValue(copy.CodeValue), + CodingSchemeDesignator(copy.CodingSchemeDesignator), + CodingSchemeVersion(copy.CodingSchemeVersion), + ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), + ContextGroupLocalVersion(copy.ContextGroupLocalVersion), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), + EquivalentCodeSequence(copy.EquivalentCodeSequence), + LongCodeValue(copy.LongCodeValue), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID), + URNCodeValue(copy.URNCodeValue) +{ +} + + +DRTStrainCodeSequence::Item::~Item() +{ +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + CodeMeaning = copy.CodeMeaning; + CodeValue = copy.CodeValue; + CodingSchemeDesignator = copy.CodingSchemeDesignator; + CodingSchemeVersion = copy.CodingSchemeVersion; + ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; + ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; + ContextGroupLocalVersion = copy.ContextGroupLocalVersion; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; + EquivalentCodeSequence = copy.EquivalentCodeSequence; + LongCodeValue = copy.LongCodeValue; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; + URNCodeValue = copy.URNCodeValue; + } + return *this; +} + + +void DRTStrainCodeSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + CodeValue.clear(); + CodingSchemeDesignator.clear(); + CodingSchemeVersion.clear(); + CodeMeaning.clear(); + LongCodeValue.clear(); + URNCodeValue.clear(); + EquivalentCodeSequence.clear(); + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + ContextGroupVersion.clear(); + ContextGroupExtensionFlag.clear(); + ContextGroupLocalVersion.clear(); + ContextGroupExtensionCreatorUID.clear(); + } +} + + +OFBool DRTStrainCodeSequence::Item::isEmpty() +{ + return CodeValue.isEmpty() && + CodingSchemeDesignator.isEmpty() && + CodingSchemeVersion.isEmpty() && + CodeMeaning.isEmpty() && + LongCodeValue.isEmpty() && + URNCodeValue.isEmpty() && + EquivalentCodeSequence.isEmpty() && + ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && + ContextGroupVersion.isEmpty() && + ContextGroupExtensionFlag.isEmpty() && + ContextGroupLocalVersion.isEmpty() && + ContextGroupExtensionCreatorUID.isEmpty(); +} + + +OFBool DRTStrainCodeSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTStrainCodeSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainCodeSequence"); + EquivalentCodeSequence.read(item, "1-n", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainCodeSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainCodeSequence"); + if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainCodeSequence"); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeMeaning, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeValue, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeDesignator, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeVersion, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupLocalVersion, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(LongCodeValue, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(URNCodeValue, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeMeaning.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeDesignator.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionCreatorUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionFlag.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupLocalVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LongCodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; + if (result.good()) + result = URNCodeValue.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTStrainCodeSequence::DRTStrainCodeSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTStrainCodeSequence::DRTStrainCodeSequence(const DRTStrainCodeSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTStrainCodeSequence &DRTStrainCodeSequence::operator=(const DRTStrainCodeSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTStrainCodeSequence::~DRTStrainCodeSequence() +{ + clear(); +} + + +void DRTStrainCodeSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTStrainCodeSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTStrainCodeSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTStrainCodeSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTStrainCodeSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTStrainCodeSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTStrainCodeSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTStrainCodeSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_StrainCodeSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_StrainCodeSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTStrainCodeSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainCodeSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtsdcs.cc b/dcmrt/libsrc/drtsdcs.cc index 5dd75d95..811f0b54 100644 --- a/dcmrt/libsrc/drtsdcs.cc +++ b/dcmrt/libsrc/drtsdcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSeriesDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTSeriesDescriptionCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTSeriesDescriptionCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SeriesDescriptionCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SeriesDescriptionCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SeriesDescriptionCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SeriesDescriptionCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTSeriesDescriptionCodeSequence::isValid() const } -unsigned long DRTSeriesDescriptionCodeSequence::getNumberOfItems() const +size_t DRTSeriesDescriptionCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTSeriesDescriptionCodeSequence::gotoNextItem() } -OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTSeriesDescriptionCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence:: } -OFCondition DRTSeriesDescriptionCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTSeriesDescriptionCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::getItem(const unsigned long num, I } -DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::getItem(const unsigned long num) +DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::getIte } -const DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::getItem(const unsigned long num) const +const DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence:: } -DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::operator[](const unsigned long num) +DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::operator[](const unsigned long num) const +const DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::addItem(Item *&item) } -OFCondition DRTSeriesDescriptionCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTSeriesDescriptionCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::insertItem(const unsigned long pos } -OFCondition DRTSeriesDescriptionCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTSeriesDescriptionCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtsds.cc b/dcmrt/libsrc/drtsds.cc index 946e5936..718ec2d6 100644 --- a/dcmrt/libsrc/drtsds.cc +++ b/dcmrt/libsrc/drtsds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSetupDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -376,7 +376,7 @@ OFBool DRTSetupDeviceSequence::isValid() const } -unsigned long DRTSetupDeviceSequence::getNumberOfItems() const +size_t DRTSetupDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -406,12 +406,12 @@ OFCondition DRTSetupDeviceSequence::gotoNextItem() } -OFCondition DRTSetupDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTSetupDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -426,12 +426,12 @@ OFCondition DRTSetupDeviceSequence::gotoItem(const unsigned long num, OFListIter } -OFCondition DRTSetupDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTSetupDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -446,7 +446,7 @@ OFCondition DRTSetupDeviceSequence::gotoItem(const unsigned long num, OFListCons } -OFCondition DRTSetupDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTSetupDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -482,7 +482,7 @@ const DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::getCurrentItem() con } -OFCondition DRTSetupDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTSetupDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -492,7 +492,7 @@ OFCondition DRTSetupDeviceSequence::getItem(const unsigned long num, Item *&item } -DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::getItem(const unsigned long num) +DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -502,7 +502,7 @@ DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::getItem(const unsigned lon } -const DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::getItem(const unsigned long num) const +const DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -512,13 +512,13 @@ const DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::getItem(const unsign } -DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::operator[](const unsigned long num) +DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::operator[](const unsigned long num) const +const DRTSetupDeviceSequence::Item &DRTSetupDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -541,7 +541,7 @@ OFCondition DRTSetupDeviceSequence::addItem(Item *&item) } -OFCondition DRTSetupDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTSetupDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -564,7 +564,7 @@ OFCondition DRTSetupDeviceSequence::insertItem(const unsigned long pos, Item *&i } -OFCondition DRTSetupDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTSetupDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtshds.cc b/dcmrt/libsrc/drtshds.cc index 844fc958..909ae1b7 100644 --- a/dcmrt/libsrc/drtshds.cc +++ b/dcmrt/libsrc/drtshds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTShieldingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -338,7 +338,7 @@ OFBool DRTShieldingDeviceSequence::isValid() const } -unsigned long DRTShieldingDeviceSequence::getNumberOfItems() const +size_t DRTShieldingDeviceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -368,12 +368,12 @@ OFCondition DRTShieldingDeviceSequence::gotoNextItem() } -OFCondition DRTShieldingDeviceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTShieldingDeviceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -388,12 +388,12 @@ OFCondition DRTShieldingDeviceSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTShieldingDeviceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTShieldingDeviceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -408,7 +408,7 @@ OFCondition DRTShieldingDeviceSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTShieldingDeviceSequence::gotoItem(const unsigned long num) +OFCondition DRTShieldingDeviceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -444,7 +444,7 @@ const DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::getCurrentIt } -OFCondition DRTShieldingDeviceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTShieldingDeviceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -454,7 +454,7 @@ OFCondition DRTShieldingDeviceSequence::getItem(const unsigned long num, Item *& } -DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::getItem(const unsigned long num) +DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -464,7 +464,7 @@ DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::getItem(const unsi } -const DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::getItem(const unsigned long num) const +const DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -474,13 +474,13 @@ const DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::getItem(cons } -DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::operator[](const unsigned long num) +DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::operator[](const size_t num) { return getItem(num); } -const DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::operator[](const unsigned long num) const +const DRTShieldingDeviceSequence::Item &DRTShieldingDeviceSequence::operator[](const size_t num) const { return getItem(num); } @@ -503,7 +503,7 @@ OFCondition DRTShieldingDeviceSequence::addItem(Item *&item) } -OFCondition DRTShieldingDeviceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTShieldingDeviceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -526,7 +526,7 @@ OFCondition DRTShieldingDeviceSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTShieldingDeviceSequence::removeItem(const unsigned long pos) +OFCondition DRTShieldingDeviceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtsins.cc b/dcmrt/libsrc/drtsins.cc new file mode 100644 index 00000000..bbbabf54 --- /dev/null +++ b/dcmrt/libsrc/drtsins.cc @@ -0,0 +1,580 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTSourceInstanceSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtsins.h" + + +// --- item class --- + +DRTSourceInstanceSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + ReferencedSOPClassUID(DCM_ReferencedSOPClassUID), + ReferencedSOPInstanceUID(DCM_ReferencedSOPInstanceUID) +{ +} + + +DRTSourceInstanceSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence), + ReferencedSOPClassUID(copy.ReferencedSOPClassUID), + ReferencedSOPInstanceUID(copy.ReferencedSOPInstanceUID) +{ +} + + +DRTSourceInstanceSequence::Item::~Item() +{ +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence; + ReferencedSOPClassUID = copy.ReferencedSOPClassUID; + ReferencedSOPInstanceUID = copy.ReferencedSOPInstanceUID; + } + return *this; +} + + +void DRTSourceInstanceSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + ReferencedSOPClassUID.clear(); + ReferencedSOPInstanceUID.clear(); + PurposeOfReferenceCodeSequence.clear(); + } +} + + +OFBool DRTSourceInstanceSequence::Item::isEmpty() +{ + return ReferencedSOPClassUID.isEmpty() && + ReferencedSOPInstanceUID.isEmpty() && + PurposeOfReferenceCodeSequence.isEmpty(); +} + + +OFBool DRTSourceInstanceSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTSourceInstanceSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, ReferencedSOPClassUID, "1", "1", "SourceInstanceSequence"); + getAndCheckElementFromDataset(item, ReferencedSOPInstanceUID, "1", "1", "SourceInstanceSequence"); + PurposeOfReferenceCodeSequence.read(item, "1-n", "3", "SourceInstanceSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPClassUID), "1", "1", "SourceInstanceSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPInstanceUID), "1", "1", "SourceInstanceSequence"); + if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "3", "SourceInstanceSequence"); + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPClassUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ReferencedSOPClassUID, value, pos); +} + + +OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPInstanceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ReferencedSOPInstanceUID, value, pos); +} + + +OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPClassUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ReferencedSOPClassUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPInstanceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ReferencedSOPInstanceUID.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTSourceInstanceSequence::DRTSourceInstanceSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTSourceInstanceSequence::DRTSourceInstanceSequence(const DRTSourceInstanceSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTSourceInstanceSequence &DRTSourceInstanceSequence::operator=(const DRTSourceInstanceSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTSourceInstanceSequence::~DRTSourceInstanceSequence() +{ + clear(); +} + + +void DRTSourceInstanceSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTSourceInstanceSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTSourceInstanceSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTSourceInstanceSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTSourceInstanceSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTSourceInstanceSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTSourceInstanceSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTSourceInstanceSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_SourceInstanceSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_SourceInstanceSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourceInstanceSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtsis.cc b/dcmrt/libsrc/drtsis.cc index 85b953c9..5f1fad76 100644 --- a/dcmrt/libsrc/drtsis.cc +++ b/dcmrt/libsrc/drtsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSourceImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -379,7 +379,7 @@ OFBool DRTSourceImageSequence::isValid() const } -unsigned long DRTSourceImageSequence::getNumberOfItems() const +size_t DRTSourceImageSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -409,12 +409,12 @@ OFCondition DRTSourceImageSequence::gotoNextItem() } -OFCondition DRTSourceImageSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTSourceImageSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -429,12 +429,12 @@ OFCondition DRTSourceImageSequence::gotoItem(const unsigned long num, OFListIter } -OFCondition DRTSourceImageSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTSourceImageSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -449,7 +449,7 @@ OFCondition DRTSourceImageSequence::gotoItem(const unsigned long num, OFListCons } -OFCondition DRTSourceImageSequence::gotoItem(const unsigned long num) +OFCondition DRTSourceImageSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -485,7 +485,7 @@ const DRTSourceImageSequence::Item &DRTSourceImageSequence::getCurrentItem() con } -OFCondition DRTSourceImageSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTSourceImageSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -495,7 +495,7 @@ OFCondition DRTSourceImageSequence::getItem(const unsigned long num, Item *&item } -DRTSourceImageSequence::Item &DRTSourceImageSequence::getItem(const unsigned long num) +DRTSourceImageSequence::Item &DRTSourceImageSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -505,7 +505,7 @@ DRTSourceImageSequence::Item &DRTSourceImageSequence::getItem(const unsigned lon } -const DRTSourceImageSequence::Item &DRTSourceImageSequence::getItem(const unsigned long num) const +const DRTSourceImageSequence::Item &DRTSourceImageSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -515,13 +515,13 @@ const DRTSourceImageSequence::Item &DRTSourceImageSequence::getItem(const unsign } -DRTSourceImageSequence::Item &DRTSourceImageSequence::operator[](const unsigned long num) +DRTSourceImageSequence::Item &DRTSourceImageSequence::operator[](const size_t num) { return getItem(num); } -const DRTSourceImageSequence::Item &DRTSourceImageSequence::operator[](const unsigned long num) const +const DRTSourceImageSequence::Item &DRTSourceImageSequence::operator[](const size_t num) const { return getItem(num); } @@ -544,7 +544,7 @@ OFCondition DRTSourceImageSequence::addItem(Item *&item) } -OFCondition DRTSourceImageSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTSourceImageSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -567,7 +567,7 @@ OFCondition DRTSourceImageSequence::insertItem(const unsigned long pos, Item *&i } -OFCondition DRTSourceImageSequence::removeItem(const unsigned long pos) +OFCondition DRTSourceImageSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtsns.cc b/dcmrt/libsrc/drtsns.cc index b0febd2b..1586885d 100644 --- a/dcmrt/libsrc/drtsns.cc +++ b/dcmrt/libsrc/drtsns.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTSnoutSequence::isValid() const } -unsigned long DRTSnoutSequence::getNumberOfItems() const +size_t DRTSnoutSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTSnoutSequence::gotoNextItem() } -OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTSnoutSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListIterator(I } -OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTSnoutSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListConstItera } -OFCondition DRTSnoutSequence::gotoItem(const unsigned long num) +OFCondition DRTSnoutSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTSnoutSequence::Item &DRTSnoutSequence::getCurrentItem() const } -OFCondition DRTSnoutSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTSnoutSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTSnoutSequence::getItem(const unsigned long num, Item *&item) } -DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num) +DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num) } -const DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num) const +const DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num) } -DRTSnoutSequence::Item &DRTSnoutSequence::operator[](const unsigned long num) +DRTSnoutSequence::Item &DRTSnoutSequence::operator[](const size_t num) { return getItem(num); } -const DRTSnoutSequence::Item &DRTSnoutSequence::operator[](const unsigned long num) const +const DRTSnoutSequence::Item &DRTSnoutSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTSnoutSequence::addItem(Item *&item) } -OFCondition DRTSnoutSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTSnoutSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTSnoutSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTSnoutSequence::removeItem(const unsigned long pos) +OFCondition DRTSnoutSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtspccs.cc b/dcmrt/libsrc/drtspccs.cc index be55f83c..6e9a9e0d 100644 --- a/dcmrt/libsrc/drtspccs.cc +++ b/dcmrt/libsrc/drtspccs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSegmentedPropertyCategoryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const OFBool emptyDefaultIt EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCode EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTSegmentedPropertyCategoryCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTSegmentedPropertyCategoryCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyCategoryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyCategoryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResource(O } +OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResource(c } +OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -606,7 +635,7 @@ OFBool DRTSegmentedPropertyCategoryCodeSequence::isValid() const } -unsigned long DRTSegmentedPropertyCategoryCodeSequence::getNumberOfItems() const +size_t DRTSegmentedPropertyCategoryCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -636,12 +665,12 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoNextItem() } -OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -656,12 +685,12 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const unsigned lo } -OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -676,7 +705,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const unsigned lo } -OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTSegmentedPropertyCategoryCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -712,7 +741,7 @@ const DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCatego } -OFCondition DRTSegmentedPropertyCategoryCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTSegmentedPropertyCategoryCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -722,7 +751,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::getItem(const unsigned lon } -DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::getItem(const unsigned long num) +DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -732,7 +761,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCode } -const DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::getItem(const unsigned long num) const +const DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -742,13 +771,13 @@ const DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCatego } -DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::operator[](const unsigned long num) +DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::operator[](const unsigned long num) const +const DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -771,7 +800,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::addItem(Item *&item) } -OFCondition DRTSegmentedPropertyCategoryCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTSegmentedPropertyCategoryCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -794,7 +823,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::insertItem(const unsigned } -OFCondition DRTSegmentedPropertyCategoryCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTSegmentedPropertyCategoryCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtspcs.cc b/dcmrt/libsrc/drtspcs.cc index 7f47f65e..0e16b73e 100644 --- a/dcmrt/libsrc/drtspcs.cc +++ b/dcmrt/libsrc/drtspcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTScheduledProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -34,6 +34,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/), URNCodeValue(DCM_URNCodeValue) @@ -56,6 +57,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), ProtocolContextSequence(copy.ProtocolContextSequence), URNCodeValue(copy.URNCodeValue) @@ -86,6 +88,7 @@ DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; ProtocolContextSequence = copy.ProtocolContextSequence; URNCodeValue = copy.URNCodeValue; @@ -110,6 +113,7 @@ void DRTScheduledProtocolCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -132,6 +136,7 @@ OFBool DRTScheduledProtocolCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -164,6 +169,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ScheduledProtocolCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ScheduledProtocolCodeSequence"); @@ -192,6 +198,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ScheduledProtocolCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ScheduledProtocolCodeSequence"); @@ -310,6 +317,15 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -484,6 +500,19 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -613,7 +642,7 @@ OFBool DRTScheduledProtocolCodeSequence::isValid() const } -unsigned long DRTScheduledProtocolCodeSequence::getNumberOfItems() const +size_t DRTScheduledProtocolCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -643,12 +672,12 @@ OFCondition DRTScheduledProtocolCodeSequence::gotoNextItem() } -OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -663,12 +692,12 @@ OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -683,7 +712,7 @@ OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const unsigned long num, } -OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTScheduledProtocolCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -719,7 +748,7 @@ const DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence:: } -OFCondition DRTScheduledProtocolCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTScheduledProtocolCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -729,7 +758,7 @@ OFCondition DRTScheduledProtocolCodeSequence::getItem(const unsigned long num, I } -DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::getItem(const unsigned long num) +DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -739,7 +768,7 @@ DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::getIte } -const DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::getItem(const unsigned long num) const +const DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -749,13 +778,13 @@ const DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence:: } -DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::operator[](const unsigned long num) +DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::operator[](const unsigned long num) const +const DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::operator[](const size_t num) const { return getItem(num); } @@ -778,7 +807,7 @@ OFCondition DRTScheduledProtocolCodeSequence::addItem(Item *&item) } -OFCondition DRTScheduledProtocolCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTScheduledProtocolCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -801,7 +830,7 @@ OFCondition DRTScheduledProtocolCodeSequence::insertItem(const unsigned long pos } -OFCondition DRTScheduledProtocolCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTScheduledProtocolCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtspgis.cc b/dcmrt/libsrc/drtspgis.cc new file mode 100644 index 00000000..5c7924b0 --- /dev/null +++ b/dcmrt/libsrc/drtspgis.cc @@ -0,0 +1,580 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTSourcePatientGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtspgis.h" + + +// --- item class --- + +DRTSourcePatientGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + IssuerOfPatientID(DCM_IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/), + PatientID(DCM_PatientID) +{ +} + + +DRTSourcePatientGroupIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + IssuerOfPatientID(copy.IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), + PatientID(copy.PatientID) +{ +} + + +DRTSourcePatientGroupIdentificationSequence::Item::~Item() +{ +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + IssuerOfPatientID = copy.IssuerOfPatientID; + IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; + PatientID = copy.PatientID; + } + return *this; +} + + +void DRTSourcePatientGroupIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + PatientID.clear(); + IssuerOfPatientID.clear(); + IssuerOfPatientIDQualifiersSequence.clear(); + } +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::Item::isEmpty() +{ + return PatientID.isEmpty() && + IssuerOfPatientID.isEmpty() && + IssuerOfPatientIDQualifiersSequence.isEmpty(); +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, PatientID, "1", "1", "SourcePatientGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "SourcePatientGroupIdentificationSequence"); + IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "SourcePatientGroupIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "SourcePatientGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "SourcePatientGroupIdentificationSequence"); + if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "SourcePatientGroupIdentificationSequence"); + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(IssuerOfPatientID, value, pos); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PatientID, value, pos); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = IssuerOfPatientID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientID.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTSourcePatientGroupIdentificationSequence &DRTSourcePatientGroupIdentificationSequence::operator=(const DRTSourcePatientGroupIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTSourcePatientGroupIdentificationSequence::~DRTSourcePatientGroupIdentificationSequence() +{ + clear(); +} + + +void DRTSourcePatientGroupIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTSourcePatientGroupIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_SourcePatientGroupIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_SourcePatientGroupIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourcePatientGroupIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtarics.cc b/dcmrt/libsrc/drtsptcs.cc similarity index 73% rename from dcmrt/libsrc/drtarics.cc rename to dcmrt/libsrc/drtsptcs.cc index 7e6d530b..b0b49c7e 100644 --- a/dcmrt/libsrc/drtarics.cc +++ b/dcmrt/libsrc/drtsptcs.cc @@ -1,25 +1,25 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * - * Source file for class DRTAdditionalRTROIIdentificationCodeSequence + * Source file for class DRTSegmentedPropertyTypeModifierCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ #include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first -#include "dcmtk/dcmrt/seq/drtarics.h" +#include "dcmtk/dcmrt/seq/drtsptcs.h" // --- item class --- -DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem) +DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), CodeMeaning(DCM_CodeMeaning), CodeValue(DCM_CodeValue), @@ -34,14 +34,14 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefau EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), - PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), URNCodeValue(DCM_URNCodeValue) { } -DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const Item ©) +DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), CodeMeaning(copy.CodeMeaning), CodeValue(copy.CodeValue), @@ -56,19 +56,19 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), - PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence), URNCodeValue(copy.URNCodeValue) { } -DRTAdditionalRTROIIdentificationCodeSequence::Item::~Item() +DRTSegmentedPropertyTypeModifierCodeSequence::Item::~Item() { } -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::Item::operator=(const Item ©) +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::Item::operator=(const Item ©) { if (this != ©) { @@ -86,15 +86,15 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentifica EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; - PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence; URNCodeValue = copy.URNCodeValue; } return *this; } -void DRTAdditionalRTROIIdentificationCodeSequence::Item::clear() +void DRTSegmentedPropertyTypeModifierCodeSequence::Item::clear() { if (!EmptyDefaultItem) { @@ -110,16 +110,16 @@ void DRTAdditionalRTROIIdentificationCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); ContextGroupExtensionCreatorUID.clear(); - PurposeOfReferenceCodeSequence.clear(); } } -OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isEmpty() +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isEmpty() { return CodeValue.isEmpty() && CodingSchemeDesignator.isEmpty() && @@ -132,77 +132,77 @@ OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && - ContextGroupExtensionCreatorUID.isEmpty() && - PurposeOfReferenceCodeSequence.isEmpty(); + ContextGroupExtensionCreatorUID.isEmpty(); } -OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isValid() const +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isValid() const { return !EmptyDefaultItem; } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::read(DcmItem &item) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::read(DcmItem &item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) { /* re-initialize object */ clear(); - getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - EquivalentCodeSequence.read(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - PurposeOfReferenceCodeSequence.read(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence"); + getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + EquivalentCodeSequence.read(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); result = EC_Normal; } return result; } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::write(DcmItem &item) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::write(DcmItem &item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) { result = EC_Normal; - addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); } return result; } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -211,7 +211,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeMeaning(O } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -220,7 +220,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeValue(OFS } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -229,7 +229,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeD } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -238,7 +238,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeV } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -247,7 +247,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupE } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -256,7 +256,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupE } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -265,7 +265,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupL } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -274,7 +274,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupV } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -283,7 +283,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextIdenti } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -292,7 +292,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextUID(OF } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -301,7 +301,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getLongCodeValue } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -310,7 +310,16 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResour } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -319,7 +328,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResour } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; @@ -328,7 +337,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getURNCodeValue( } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -341,7 +350,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeMeaning(c } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -354,7 +363,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeValue(con } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -367,7 +376,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeD } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -380,7 +389,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeV } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -393,7 +402,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupE } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -406,7 +415,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupE } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -419,7 +428,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupL } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -432,7 +441,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupV } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -445,7 +454,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextIdenti } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -458,7 +467,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextUID(co } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -471,7 +480,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setLongCodeValue } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -484,7 +493,20 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResour } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -497,7 +519,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResour } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) @@ -512,7 +534,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setURNCodeValue( // --- sequence class --- -DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence) +DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence) : EmptyDefaultSequence(emptyDefaultSequence), SequenceOfItems(), CurrentItem(), @@ -522,7 +544,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCo } -DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence ©) +DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence ©) : EmptyDefaultSequence(copy.EmptyDefaultSequence), SequenceOfItems(), CurrentItem(), @@ -548,7 +570,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCo } -DRTAdditionalRTROIIdentificationCodeSequence &DRTAdditionalRTROIIdentificationCodeSequence::operator=(const DRTAdditionalRTROIIdentificationCodeSequence ©) +DRTSegmentedPropertyTypeModifierCodeSequence &DRTSegmentedPropertyTypeModifierCodeSequence::operator=(const DRTSegmentedPropertyTypeModifierCodeSequence ©) { if (this != ©) { @@ -576,13 +598,13 @@ DRTAdditionalRTROIIdentificationCodeSequence &DRTAdditionalRTROIIdentificationCo } -DRTAdditionalRTROIIdentificationCodeSequence::~DRTAdditionalRTROIIdentificationCodeSequence() +DRTSegmentedPropertyTypeModifierCodeSequence::~DRTSegmentedPropertyTypeModifierCodeSequence() { clear(); } -void DRTAdditionalRTROIIdentificationCodeSequence::clear() +void DRTSegmentedPropertyTypeModifierCodeSequence::clear() { if (!EmptyDefaultSequence) { @@ -601,25 +623,25 @@ void DRTAdditionalRTROIIdentificationCodeSequence::clear() } -OFBool DRTAdditionalRTROIIdentificationCodeSequence::isEmpty() +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isEmpty() { return SequenceOfItems.empty(); } -OFBool DRTAdditionalRTROIIdentificationCodeSequence::isValid() const +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isValid() const { return !EmptyDefaultSequence; } -unsigned long DRTAdditionalRTROIIdentificationCodeSequence::getNumberOfItems() const +size_t DRTSegmentedPropertyTypeModifierCodeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoFirstItem() +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoFirstItem() { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) @@ -631,7 +653,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoFirstItem() } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoNextItem() +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoNextItem() { OFCondition result = EC_IllegalCall; if (CurrentItem != SequenceOfItems.end()) @@ -643,12 +665,12 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoNextItem() } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -663,12 +685,12 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigne } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -683,13 +705,13 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigne } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem(Item *&item) const +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem(Item *&item) const { OFCondition result = EC_IllegalCall; if (CurrentItem != SequenceOfItems.end()) @@ -701,7 +723,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem(Item *& } -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem() +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem() { if (CurrentItem != SequenceOfItems.end()) return **CurrentItem; @@ -710,7 +732,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentifica } -const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem() const +const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem() const { if (CurrentItem != SequenceOfItems.end()) return **CurrentItem; @@ -719,7 +741,7 @@ const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIden } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -729,7 +751,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned } -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num) +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -739,7 +761,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentifica } -const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num) const +const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -749,19 +771,19 @@ const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIden } -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num) +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const size_t num) { return getItem(num); } -const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num) const +const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const size_t num) const { return getItem(num); } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::addItem(Item *&item) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::addItem(Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -778,7 +800,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::addItem(Item *&item) } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -801,7 +823,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::insertItem(const unsig } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::removeItem(const unsigned long pos) +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -819,7 +841,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::removeItem(const unsig } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset, +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::read(DcmItem &dataset, const OFString &card, const OFString &type, const char *moduleName) @@ -831,7 +853,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset, clear(); /* retrieve sequence element from dataset */ DcmSequenceOfItems *sequence; - result = dataset.findAndGetSequence(DCM_AdditionalRTROIIdentificationCodeSequence, sequence); + result = dataset.findAndGetSequence(DCM_SegmentedPropertyTypeModifierCodeSequence, sequence); if (sequence != NULL) { if (checkElementValue(*sequence, card, type, result, moduleName)) @@ -861,7 +883,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset, } } } else { - DcmSequenceOfItems element(DCM_AdditionalRTROIIdentificationCodeSequence); + DcmSequenceOfItems element(DCM_SegmentedPropertyTypeModifierCodeSequence); checkElementValue(element, card, type, result, moduleName); } } @@ -869,7 +891,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset, } -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::write(DcmItem &dataset, +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::write(DcmItem &dataset, const OFString &card, const OFString &type, const char *moduleName) @@ -878,7 +900,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::write(DcmItem &dataset if (!EmptyDefaultSequence) { result = EC_MemoryExhausted; - DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_AdditionalRTROIIdentificationCodeSequence); + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SegmentedPropertyTypeModifierCodeSequence); if (sequence != NULL) { result = EC_Normal; diff --git a/dcmrt/libsrc/drtss.cc b/dcmrt/libsrc/drtss.cc index 0bfbd0c6..3fb57acd 100644 --- a/dcmrt/libsrc/drtss.cc +++ b/dcmrt/libsrc/drtss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -787,7 +787,7 @@ OFBool DRTSourceSequence::isValid() const } -unsigned long DRTSourceSequence::getNumberOfItems() const +size_t DRTSourceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -817,12 +817,12 @@ OFCondition DRTSourceSequence::gotoNextItem() } -OFCondition DRTSourceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTSourceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -837,12 +837,12 @@ OFCondition DRTSourceSequence::gotoItem(const unsigned long num, OFListIterator( } -OFCondition DRTSourceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTSourceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -857,7 +857,7 @@ OFCondition DRTSourceSequence::gotoItem(const unsigned long num, OFListConstIter } -OFCondition DRTSourceSequence::gotoItem(const unsigned long num) +OFCondition DRTSourceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -893,7 +893,7 @@ const DRTSourceSequence::Item &DRTSourceSequence::getCurrentItem() const } -OFCondition DRTSourceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTSourceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -903,7 +903,7 @@ OFCondition DRTSourceSequence::getItem(const unsigned long num, Item *&item) } -DRTSourceSequence::Item &DRTSourceSequence::getItem(const unsigned long num) +DRTSourceSequence::Item &DRTSourceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -913,7 +913,7 @@ DRTSourceSequence::Item &DRTSourceSequence::getItem(const unsigned long num) } -const DRTSourceSequence::Item &DRTSourceSequence::getItem(const unsigned long num) const +const DRTSourceSequence::Item &DRTSourceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -923,13 +923,13 @@ const DRTSourceSequence::Item &DRTSourceSequence::getItem(const unsigned long nu } -DRTSourceSequence::Item &DRTSourceSequence::operator[](const unsigned long num) +DRTSourceSequence::Item &DRTSourceSequence::operator[](const size_t num) { return getItem(num); } -const DRTSourceSequence::Item &DRTSourceSequence::operator[](const unsigned long num) const +const DRTSourceSequence::Item &DRTSourceSequence::operator[](const size_t num) const { return getItem(num); } @@ -952,7 +952,7 @@ OFCondition DRTSourceSequence::addItem(Item *&item) } -OFCondition DRTSourceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTSourceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -975,7 +975,7 @@ OFCondition DRTSourceSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTSourceSequence::removeItem(const unsigned long pos) +OFCondition DRTSourceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtssrcs.cc b/dcmrt/libsrc/drtssrcs.cc new file mode 100644 index 00000000..5af054ce --- /dev/null +++ b/dcmrt/libsrc/drtssrcs.cc @@ -0,0 +1,957 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTStrainSourceRegistryCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtssrcs.h" + + +// --- item class --- + +DRTStrainSourceRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + CodeMeaning(DCM_CodeMeaning), + CodeValue(DCM_CodeValue), + CodingSchemeDesignator(DCM_CodingSchemeDesignator), + CodingSchemeVersion(DCM_CodingSchemeVersion), + ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), + ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), + EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + LongCodeValue(DCM_LongCodeValue), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID), + URNCodeValue(DCM_URNCodeValue) +{ +} + + +DRTStrainSourceRegistryCodeSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + CodeMeaning(copy.CodeMeaning), + CodeValue(copy.CodeValue), + CodingSchemeDesignator(copy.CodingSchemeDesignator), + CodingSchemeVersion(copy.CodingSchemeVersion), + ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), + ContextGroupLocalVersion(copy.ContextGroupLocalVersion), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), + EquivalentCodeSequence(copy.EquivalentCodeSequence), + LongCodeValue(copy.LongCodeValue), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID), + URNCodeValue(copy.URNCodeValue) +{ +} + + +DRTStrainSourceRegistryCodeSequence::Item::~Item() +{ +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + CodeMeaning = copy.CodeMeaning; + CodeValue = copy.CodeValue; + CodingSchemeDesignator = copy.CodingSchemeDesignator; + CodingSchemeVersion = copy.CodingSchemeVersion; + ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; + ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; + ContextGroupLocalVersion = copy.ContextGroupLocalVersion; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; + EquivalentCodeSequence = copy.EquivalentCodeSequence; + LongCodeValue = copy.LongCodeValue; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; + URNCodeValue = copy.URNCodeValue; + } + return *this; +} + + +void DRTStrainSourceRegistryCodeSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + CodeValue.clear(); + CodingSchemeDesignator.clear(); + CodingSchemeVersion.clear(); + CodeMeaning.clear(); + LongCodeValue.clear(); + URNCodeValue.clear(); + EquivalentCodeSequence.clear(); + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + ContextGroupVersion.clear(); + ContextGroupExtensionFlag.clear(); + ContextGroupLocalVersion.clear(); + ContextGroupExtensionCreatorUID.clear(); + } +} + + +OFBool DRTStrainSourceRegistryCodeSequence::Item::isEmpty() +{ + return CodeValue.isEmpty() && + CodingSchemeDesignator.isEmpty() && + CodingSchemeVersion.isEmpty() && + CodeMeaning.isEmpty() && + LongCodeValue.isEmpty() && + URNCodeValue.isEmpty() && + EquivalentCodeSequence.isEmpty() && + ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && + ContextGroupVersion.isEmpty() && + ContextGroupExtensionFlag.isEmpty() && + ContextGroupLocalVersion.isEmpty() && + ContextGroupExtensionCreatorUID.isEmpty(); +} + + +OFBool DRTStrainSourceRegistryCodeSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence"); + EquivalentCodeSequence.read(item, "1-n", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainSourceRegistryCodeSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence"); + if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainSourceRegistryCodeSequence"); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeMeaning, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeValue, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeDesignator, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeVersion, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupLocalVersion, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(LongCodeValue, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(URNCodeValue, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeMeaning.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeDesignator.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionCreatorUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionFlag.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupLocalVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LongCodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; + if (result.good()) + result = URNCodeValue.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTStrainSourceRegistryCodeSequence &DRTStrainSourceRegistryCodeSequence::operator=(const DRTStrainSourceRegistryCodeSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTStrainSourceRegistryCodeSequence::~DRTStrainSourceRegistryCodeSequence() +{ + clear(); +} + + +void DRTStrainSourceRegistryCodeSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTStrainSourceRegistryCodeSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTStrainSourceRegistryCodeSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTStrainSourceRegistryCodeSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_StrainSourceRegistryCodeSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_StrainSourceRegistryCodeSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainSourceRegistryCodeSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtssrs.cc b/dcmrt/libsrc/drtssrs.cc index bf467a71..68f77e2b 100644 --- a/dcmrt/libsrc/drtssrs.cc +++ b/dcmrt/libsrc/drtssrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTStructureSetROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -421,7 +421,7 @@ OFBool DRTStructureSetROISequence::isValid() const } -unsigned long DRTStructureSetROISequence::getNumberOfItems() const +size_t DRTStructureSetROISequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -451,12 +451,12 @@ OFCondition DRTStructureSetROISequence::gotoNextItem() } -OFCondition DRTStructureSetROISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTStructureSetROISequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -471,12 +471,12 @@ OFCondition DRTStructureSetROISequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTStructureSetROISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTStructureSetROISequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -491,7 +491,7 @@ OFCondition DRTStructureSetROISequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTStructureSetROISequence::gotoItem(const unsigned long num) +OFCondition DRTStructureSetROISequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -527,7 +527,7 @@ const DRTStructureSetROISequence::Item &DRTStructureSetROISequence::getCurrentIt } -OFCondition DRTStructureSetROISequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTStructureSetROISequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -537,7 +537,7 @@ OFCondition DRTStructureSetROISequence::getItem(const unsigned long num, Item *& } -DRTStructureSetROISequence::Item &DRTStructureSetROISequence::getItem(const unsigned long num) +DRTStructureSetROISequence::Item &DRTStructureSetROISequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -547,7 +547,7 @@ DRTStructureSetROISequence::Item &DRTStructureSetROISequence::getItem(const unsi } -const DRTStructureSetROISequence::Item &DRTStructureSetROISequence::getItem(const unsigned long num) const +const DRTStructureSetROISequence::Item &DRTStructureSetROISequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -557,13 +557,13 @@ const DRTStructureSetROISequence::Item &DRTStructureSetROISequence::getItem(cons } -DRTStructureSetROISequence::Item &DRTStructureSetROISequence::operator[](const unsigned long num) +DRTStructureSetROISequence::Item &DRTStructureSetROISequence::operator[](const size_t num) { return getItem(num); } -const DRTStructureSetROISequence::Item &DRTStructureSetROISequence::operator[](const unsigned long num) const +const DRTStructureSetROISequence::Item &DRTStructureSetROISequence::operator[](const size_t num) const { return getItem(num); } @@ -586,7 +586,7 @@ OFCondition DRTStructureSetROISequence::addItem(Item *&item) } -OFCondition DRTStructureSetROISequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTStructureSetROISequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -609,7 +609,7 @@ OFCondition DRTStructureSetROISequence::insertItem(const unsigned long pos, Item } -OFCondition DRTStructureSetROISequence::removeItem(const unsigned long pos) +OFCondition DRTStructureSetROISequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtsss.cc b/dcmrt/libsrc/drtsss.cc new file mode 100644 index 00000000..b127777d --- /dev/null +++ b/dcmrt/libsrc/drtsss.cc @@ -0,0 +1,580 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTStrainStockSequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtsss.h" + + +// --- item class --- + +DRTStrainStockSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + StrainSource(DCM_StrainSource), + StrainSourceRegistryCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + StrainStockNumber(DCM_StrainStockNumber) +{ +} + + +DRTStrainStockSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + StrainSource(copy.StrainSource), + StrainSourceRegistryCodeSequence(copy.StrainSourceRegistryCodeSequence), + StrainStockNumber(copy.StrainStockNumber) +{ +} + + +DRTStrainStockSequence::Item::~Item() +{ +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + StrainSource = copy.StrainSource; + StrainSourceRegistryCodeSequence = copy.StrainSourceRegistryCodeSequence; + StrainStockNumber = copy.StrainStockNumber; + } + return *this; +} + + +void DRTStrainStockSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + StrainStockNumber.clear(); + StrainSource.clear(); + StrainSourceRegistryCodeSequence.clear(); + } +} + + +OFBool DRTStrainStockSequence::Item::isEmpty() +{ + return StrainStockNumber.isEmpty() && + StrainSource.isEmpty() && + StrainSourceRegistryCodeSequence.isEmpty(); +} + + +OFBool DRTStrainStockSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTStrainStockSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, StrainStockNumber, "1", "1", "StrainStockSequence"); + getAndCheckElementFromDataset(item, StrainSource, "1", "1", "StrainStockSequence"); + StrainSourceRegistryCodeSequence.read(item, "1-n", "1", "StrainStockSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainStockSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmLongString(StrainStockNumber), "1", "1", "StrainStockSequence"); + addElementToDataset(result, item, new DcmLongString(StrainSource), "1", "1", "StrainStockSequence"); + if (result.good()) result = StrainSourceRegistryCodeSequence.write(item, "1-n", "1", "StrainStockSequence"); + } + return result; +} + + +OFCondition DRTStrainStockSequence::Item::getStrainSource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(StrainSource, value, pos); +} + + +OFCondition DRTStrainStockSequence::Item::getStrainStockNumber(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(StrainStockNumber, value, pos); +} + + +OFCondition DRTStrainStockSequence::Item::setStrainSource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainSource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainStockSequence::Item::setStrainStockNumber(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainStockNumber.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTStrainStockSequence::DRTStrainStockSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTStrainStockSequence::DRTStrainStockSequence(const DRTStrainStockSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTStrainStockSequence &DRTStrainStockSequence::operator=(const DRTStrainStockSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTStrainStockSequence::~DRTStrainStockSequence() +{ + clear(); +} + + +void DRTStrainStockSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTStrainStockSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTStrainStockSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTStrainStockSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTStrainStockSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTStrainStockSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTStrainStockSequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTStrainStockSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTStrainStockSequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTStrainStockSequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainStockSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_StrainStockSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_StrainStockSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTStrainStockSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainStockSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtstrct.cc b/dcmrt/libsrc/drtstrct.cc index 29308f05..233cc14a 100644 --- a/dcmrt/libsrc/drtstrct.cc +++ b/dcmrt/libsrc/drtstrct.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTStructureSetIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,6 +23,9 @@ DRTStructureSetIOD::DRTStructureSetIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTStructureSetIOD::DRTStructureSetIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTStructureSetIOD::DRTStructureSetIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTStructureSetIOD::DRTStructureSetIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -119,6 +139,7 @@ DRTStructureSetIOD::DRTStructureSetIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -140,6 +161,12 @@ DRTStructureSetIOD::DRTStructureSetIOD() ReviewDate(DCM_ReviewDate), ReviewTime(DCM_ReviewTime), ReviewerName(DCM_ReviewerName), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -150,6 +177,8 @@ DRTStructureSetIOD::DRTStructureSetIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -180,6 +209,9 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -195,12 +227,19 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -234,7 +273,16 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -254,6 +302,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -276,6 +325,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -297,6 +347,12 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) ReviewDate(copy.ReviewDate), ReviewTime(copy.ReviewTime), ReviewerName(copy.ReviewerName), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -307,6 +363,8 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -343,6 +401,9 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -358,12 +419,19 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -397,7 +465,16 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -417,6 +494,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -439,6 +517,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -460,6 +539,12 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © ReviewDate = copy.ReviewDate; ReviewTime = copy.ReviewTime; ReviewerName = copy.ReviewerName; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -470,6 +555,8 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -501,6 +588,9 @@ void DRTStructureSetIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -516,12 +606,19 @@ void DRTStructureSetIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -555,7 +652,16 @@ void DRTStructureSetIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -575,6 +681,7 @@ void DRTStructureSetIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -597,6 +704,7 @@ void DRTStructureSetIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -618,6 +726,12 @@ void DRTStructureSetIOD::clear() ReviewDate.clear(); ReviewTime.clear(); ReviewerName.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -628,6 +742,8 @@ void DRTStructureSetIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -703,6 +819,7 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -742,6 +859,14 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -753,6 +878,8 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -789,6 +916,9 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -804,12 +934,19 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -865,7 +1002,16 @@ OFCondition DRTStructureSetIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -902,6 +1048,7 @@ OFCondition DRTStructureSetIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -940,6 +1087,9 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -955,12 +1105,19 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1005,7 +1162,16 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1033,6 +1199,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1062,6 +1229,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1100,6 +1268,17 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1111,6 +1290,8 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1171,7 +1352,16 @@ OFBool DRTStructureSetIOD::isPatientStudyModulePresent(const OFBool /*complete*/ !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1231,6 +1421,18 @@ OFBool DRTStructureSetIOD::isApprovalModulePresent(const OFBool complete) } +OFBool DRTStructureSetIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTStructureSetIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1263,6 +1465,12 @@ OFCondition DRTStructureSetIOD::getAdmittingDiagnosesDescription(OFString &value } +OFCondition DRTStructureSetIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTStructureSetIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -1389,6 +1597,12 @@ OFCondition DRTStructureSetIOD::getDeidentificationMethod(OFString &value, const } +OFCondition DRTStructureSetIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTStructureSetIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1473,6 +1687,12 @@ OFCondition DRTStructureSetIOD::getIssuerOfPatientID(OFString &value, const sign } +OFCondition DRTStructureSetIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTStructureSetIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1491,6 +1711,36 @@ OFCondition DRTStructureSetIOD::getManufacturerModelName(OFString &value, const } +OFCondition DRTStructureSetIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTStructureSetIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTStructureSetIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTStructureSetIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1539,18 +1789,42 @@ OFCondition DRTStructureSetIOD::getPatientAge(OFString &value, const signed long } +OFCondition DRTStructureSetIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTStructureSetIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1563,6 +1837,12 @@ OFCondition DRTStructureSetIOD::getPatientComments(OFString &value, const signed } +OFCondition DRTStructureSetIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1611,6 +1891,12 @@ OFCondition DRTStructureSetIOD::getPatientSpeciesDescription(OFString &value, co } +OFCondition DRTStructureSetIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1677,6 +1963,12 @@ OFCondition DRTStructureSetIOD::getPositionReferenceIndicator(OFString &value, c } +OFCondition DRTStructureSetIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTStructureSetIOD::getQualityControlSubject(OFString &value, const signed long pos) const { return getStringValueFromElement(QualityControlSubject, value, pos); @@ -1815,6 +2107,12 @@ OFCondition DRTStructureSetIOD::getServiceEpisodeID(OFString &value, const signe } +OFCondition DRTStructureSetIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTStructureSetIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1845,6 +2143,24 @@ OFCondition DRTStructureSetIOD::getStationName(OFString &value, const signed lon } +OFCondition DRTStructureSetIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTStructureSetIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTStructureSetIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTStructureSetIOD::getStructureSetDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StructureSetDate, value, pos); @@ -1953,6 +2269,15 @@ OFCondition DRTStructureSetIOD::setAdmittingDiagnosesDescription(const OFString } +OFCondition DRTStructureSetIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2142,6 +2467,15 @@ OFCondition DRTStructureSetIOD::setDeidentificationMethod(const OFString &value, } +OFCondition DRTStructureSetIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2259,6 +2593,15 @@ OFCondition DRTStructureSetIOD::setIssuerOfPatientID(const OFString &value, cons } +OFCondition DRTStructureSetIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2286,6 +2629,33 @@ OFCondition DRTStructureSetIOD::setManufacturerModelName(const OFString &value, } +OFCondition DRTStructureSetIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2358,6 +2728,15 @@ OFCondition DRTStructureSetIOD::setPatientAge(const OFString &value, const OFBoo } +OFCondition DRTStructureSetIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2367,6 +2746,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const } +OFCondition DRTStructureSetIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2376,6 +2764,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const } +OFCondition DRTStructureSetIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2394,6 +2791,15 @@ OFCondition DRTStructureSetIOD::setPatientComments(const OFString &value, const } +OFCondition DRTStructureSetIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2457,6 +2863,15 @@ OFCondition DRTStructureSetIOD::setPatientSpeciesDescription(const OFString &val } +OFCondition DRTStructureSetIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2544,6 +2959,12 @@ OFCondition DRTStructureSetIOD::setPositionReferenceIndicator(const OFString &va } +OFCondition DRTStructureSetIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTStructureSetIOD::setQualityControlSubject(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2742,6 +3163,15 @@ OFCondition DRTStructureSetIOD::setServiceEpisodeID(const OFString &value, const } +OFCondition DRTStructureSetIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2778,6 +3208,33 @@ OFCondition DRTStructureSetIOD::setStationName(const OFString &value, const OFBo } +OFCondition DRTStructureSetIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setStructureSetDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drttms0.cc b/dcmrt/libsrc/drttms0.cc index 60acc416..d6955bf4 100644 --- a/dcmrt/libsrc/drttms0.cc +++ b/dcmrt/libsrc/drttms0.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -396,7 +396,7 @@ OFBool DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::isValid() co } -unsigned long DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getNumberOfItems() const +size_t DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -426,12 +426,12 @@ OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoNex } -OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -446,12 +446,12 @@ OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoIte } -OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -466,7 +466,7 @@ OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoIte } -OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoItem(const unsigned long num) +OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -502,7 +502,7 @@ const DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTrea } -OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -512,7 +512,7 @@ OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getItem } -DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getItem(const unsigned long num) +DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -522,7 +522,7 @@ DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentM } -const DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getItem(const unsigned long num) const +const DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -532,13 +532,13 @@ const DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTrea } -DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::operator[](const unsigned long num) +DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::operator[](const size_t num) { return getItem(num); } -const DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::operator[](const unsigned long num) const +const DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::Item &DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::operator[](const size_t num) const { return getItem(num); } @@ -561,7 +561,7 @@ OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::addItem } -OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -584,7 +584,7 @@ OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::insertI } -OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::removeItem(const unsigned long pos) +OFCondition DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drttms9.cc b/dcmrt/libsrc/drttms9.cc index 8d9d2f57..0e336eb1 100644 --- a/dcmrt/libsrc/drttms9.cc +++ b/dcmrt/libsrc/drttms9.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -396,7 +396,7 @@ OFBool DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::isValid() c } -unsigned long DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getNumberOfItems() const +size_t DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -426,12 +426,12 @@ OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoNe } -OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -446,12 +446,12 @@ OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoIt } -OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -466,7 +466,7 @@ OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoIt } -OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoItem(const unsigned long num) +OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -502,7 +502,7 @@ const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTre } -OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getItem(const unsigned long num, Item *&item) +OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -512,7 +512,7 @@ OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getIte } -DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getItem(const unsigned long num) +DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -522,7 +522,7 @@ DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatment } -const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getItem(const unsigned long num) const +const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -532,13 +532,13 @@ const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTre } -DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::operator[](const unsigned long num) +DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::operator[](const size_t num) { return getItem(num); } -const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::operator[](const unsigned long num) const +const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::Item &DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::operator[](const size_t num) const { return getItem(num); } @@ -561,7 +561,7 @@ OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::addIte } -OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -584,7 +584,7 @@ OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::insert } -OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::removeItem(const unsigned long pos) +OFCondition DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drttreat.cc b/dcmrt/libsrc/drttreat.cc index 9748d148..6684827e 100644 --- a/dcmrt/libsrc/drttreat.cc +++ b/dcmrt/libsrc/drttreat.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSummaryRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -23,6 +23,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -119,6 +139,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -135,6 +156,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() FractionGroupSummarySequence(), TreatmentSummaryMeasuredDoseReferenceSequence(), TreatmentSummaryCalculatedDoseReferenceSequence(), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -145,6 +172,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -175,6 +204,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -190,12 +222,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -229,7 +268,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -249,6 +297,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -271,6 +320,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -287,6 +337,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum FractionGroupSummarySequence(copy.FractionGroupSummarySequence), TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence), TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -297,6 +353,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -333,6 +391,9 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -348,12 +409,19 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -387,7 +455,16 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -407,6 +484,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -429,6 +507,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -445,6 +524,12 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT FractionGroupSummarySequence = copy.FractionGroupSummarySequence; TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence; TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -455,6 +540,8 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -486,6 +573,9 @@ void DRTTreatmentSummaryRecordIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -501,12 +591,19 @@ void DRTTreatmentSummaryRecordIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -540,7 +637,16 @@ void DRTTreatmentSummaryRecordIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -560,6 +666,7 @@ void DRTTreatmentSummaryRecordIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -582,6 +689,7 @@ void DRTTreatmentSummaryRecordIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -598,6 +706,12 @@ void DRTTreatmentSummaryRecordIOD::clear() FractionGroupSummarySequence.clear(); TreatmentSummaryMeasuredDoseReferenceSequence.clear(); TreatmentSummaryCalculatedDoseReferenceSequence.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -608,6 +722,8 @@ void DRTTreatmentSummaryRecordIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -683,6 +799,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -704,6 +821,14 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset) TreatmentSummaryMeasuredDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule"); TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule"); + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -715,6 +840,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -751,6 +878,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -766,12 +896,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -827,7 +964,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -864,6 +1010,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -902,6 +1049,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -917,12 +1067,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -967,7 +1124,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -995,6 +1161,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1024,6 +1191,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1045,6 +1213,17 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) if (result.good()) result = TreatmentSummaryMeasuredDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule"); if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule"); + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1056,6 +1235,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1116,7 +1297,16 @@ OFBool DRTTreatmentSummaryRecordIOD::isPatientStudyModulePresent(const OFBool /* !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1146,6 +1336,18 @@ OFBool DRTTreatmentSummaryRecordIOD::isClinicalTrialSeriesModulePresent(const OF } +OFBool DRTTreatmentSummaryRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTTreatmentSummaryRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1178,6 +1380,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getAdmittingDiagnosesDescription(OFStr } +OFCondition DRTTreatmentSummaryRecordIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos); @@ -1304,6 +1512,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getDeidentificationMethod(OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1388,6 +1602,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getIssuerOfPatientID(OFString &value, } +OFCondition DRTTreatmentSummaryRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1406,6 +1626,36 @@ OFCondition DRTTreatmentSummaryRecordIOD::getManufacturerModelName(OFString &val } +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1460,18 +1710,42 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientAge(OFString &value, const s } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1484,6 +1758,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientComments(OFString &value, co } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1532,6 +1812,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientSpeciesDescription(OFString } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1592,6 +1878,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPixelPaddingValue(Uint16 &value, co } +OFCondition DRTTreatmentSummaryRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getQualityControlSubject(OFString &value, const signed long pos) const { return getStringValueFromElement(QualityControlSubject, value, pos); @@ -1712,6 +2004,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getServiceEpisodeID(OFString &value, c } +OFCondition DRTTreatmentSummaryRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1742,6 +2040,24 @@ OFCondition DRTTreatmentSummaryRecordIOD::getStationName(OFString &value, const } +OFCondition DRTTreatmentSummaryRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -1838,6 +2154,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setAdmittingDiagnosesDescription(const } +OFCondition DRTTreatmentSummaryRecordIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2027,6 +2352,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setDeidentificationMethod(const OFStri } +OFCondition DRTTreatmentSummaryRecordIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2144,6 +2478,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setIssuerOfPatientID(const OFString &v } +OFCondition DRTTreatmentSummaryRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2171,6 +2514,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setManufacturerModelName(const OFStrin } +OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2252,6 +2622,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientAge(const OFString &value, c } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2261,6 +2640,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2270,6 +2658,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2288,6 +2685,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientComments(const OFString &val } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2351,6 +2757,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientSpeciesDescription(const OFS } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2429,6 +2844,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPixelPaddingValue(const Uint16 valu } +OFCondition DRTTreatmentSummaryRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::setQualityControlSubject(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2600,6 +3021,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setServiceEpisodeID(const OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2636,6 +3066,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setStationName(const OFString &value, } +OFCondition DRTTreatmentSummaryRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drttscds.cc b/dcmrt/libsrc/drttscds.cc index e9b64a10..2c6067fd 100644 --- a/dcmrt/libsrc/drttscds.cc +++ b/dcmrt/libsrc/drttscds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -298,7 +298,7 @@ OFBool DRTTreatmentSummaryCalculatedDoseReferenceSequence::isValid() const } -unsigned long DRTTreatmentSummaryCalculatedDoseReferenceSequence::getNumberOfItems() const +size_t DRTTreatmentSummaryCalculatedDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -328,12 +328,12 @@ OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoNextItem() } -OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -348,12 +348,12 @@ OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const u } -OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -368,7 +368,7 @@ OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const u } -OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -404,7 +404,7 @@ const DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSumm } -OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -414,7 +414,7 @@ OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::getItem(const un } -DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::getItem(const unsigned long num) +DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -424,7 +424,7 @@ DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCal } -const DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::getItem(const unsigned long num) const +const DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -434,13 +434,13 @@ const DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSumm } -DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::operator[](const unsigned long num) +DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::operator[](const unsigned long num) const +const DRTTreatmentSummaryCalculatedDoseReferenceSequence::Item &DRTTreatmentSummaryCalculatedDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -463,7 +463,7 @@ OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::addItem(Item *&i } -OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -486,7 +486,7 @@ OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::insertItem(const } -OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTTreatmentSummaryCalculatedDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drttsibs.cc b/dcmrt/libsrc/drttsibs.cc index a69c8927..b5a89484 100644 --- a/dcmrt/libsrc/drttsibs.cc +++ b/dcmrt/libsrc/drttsibs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSessionIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -27,13 +27,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const OFBool emptyDefaultItem) BeamName(DCM_BeamName), BeamType(DCM_BeamType), CurrentFractionNumber(DCM_CurrentFractionNumber), + DeliveredDepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/), DeliveredPrimaryMeterset(DCM_DeliveredPrimaryMeterset), DeliveredSecondaryMeterset(DCM_DeliveredSecondaryMeterset), DeliveredTreatmentTime(DCM_DeliveredTreatmentTime), + FixationEye(DCM_FixationEye), FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle), FixationLightPolarAngle(DCM_FixationLightPolarAngle), GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/), IonControlPointDeliverySequence(emptyDefaultItem /*emptyDefaultSequence*/), + ModulatedScanModeType(DCM_ModulatedScanModeType), NumberOfBlocks(DCM_NumberOfBlocks), NumberOfBoli(DCM_NumberOfBoli), NumberOfCompensators(DCM_NumberOfCompensators), @@ -83,13 +86,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const Item ©) BeamName(copy.BeamName), BeamType(copy.BeamType), CurrentFractionNumber(copy.CurrentFractionNumber), + DeliveredDepthDoseParametersSequence(copy.DeliveredDepthDoseParametersSequence), DeliveredPrimaryMeterset(copy.DeliveredPrimaryMeterset), DeliveredSecondaryMeterset(copy.DeliveredSecondaryMeterset), DeliveredTreatmentTime(copy.DeliveredTreatmentTime), + FixationEye(copy.FixationEye), FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle), FixationLightPolarAngle(copy.FixationLightPolarAngle), GeneralAccessorySequence(copy.GeneralAccessorySequence), IonControlPointDeliverySequence(copy.IonControlPointDeliverySequence), + ModulatedScanModeType(copy.ModulatedScanModeType), NumberOfBlocks(copy.NumberOfBlocks), NumberOfBoli(copy.NumberOfBoli), NumberOfCompensators(copy.NumberOfCompensators), @@ -147,13 +153,16 @@ DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::It BeamName = copy.BeamName; BeamType = copy.BeamType; CurrentFractionNumber = copy.CurrentFractionNumber; + DeliveredDepthDoseParametersSequence = copy.DeliveredDepthDoseParametersSequence; DeliveredPrimaryMeterset = copy.DeliveredPrimaryMeterset; DeliveredSecondaryMeterset = copy.DeliveredSecondaryMeterset; DeliveredTreatmentTime = copy.DeliveredTreatmentTime; + FixationEye = copy.FixationEye; FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle; FixationLightPolarAngle = copy.FixationLightPolarAngle; GeneralAccessorySequence = copy.GeneralAccessorySequence; IonControlPointDeliverySequence = copy.IonControlPointDeliverySequence; + ModulatedScanModeType = copy.ModulatedScanModeType; NumberOfBlocks = copy.NumberOfBlocks; NumberOfBoli = copy.NumberOfBoli; NumberOfCompensators = copy.NumberOfCompensators; @@ -210,6 +219,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear() RadiationAtomicNumber.clear(); RadiationChargeState.clear(); ScanMode.clear(); + ModulatedScanModeType.clear(); ReferencedToleranceTableNumber.clear(); BeamLimitingDeviceLeafPairsSequence.clear(); ReferencedPatientSetupNumber.clear(); @@ -238,6 +248,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear() PatientSupportAccessoryCode.clear(); FixationLightAzimuthalAngle.clear(); FixationLightPolarAngle.clear(); + FixationEye.clear(); CurrentFractionNumber.clear(); TreatmentDeliveryType.clear(); TreatmentTerminationStatus.clear(); @@ -249,6 +260,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear() DeliveredSecondaryMeterset.clear(); SpecifiedTreatmentTime.clear(); DeliveredTreatmentTime.clear(); + DeliveredDepthDoseParametersSequence.clear(); NumberOfControlPoints.clear(); IonControlPointDeliverySequence.clear(); } @@ -266,6 +278,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty() RadiationAtomicNumber.isEmpty() && RadiationChargeState.isEmpty() && ScanMode.isEmpty() && + ModulatedScanModeType.isEmpty() && ReferencedToleranceTableNumber.isEmpty() && BeamLimitingDeviceLeafPairsSequence.isEmpty() && ReferencedPatientSetupNumber.isEmpty() && @@ -294,6 +307,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty() PatientSupportAccessoryCode.isEmpty() && FixationLightAzimuthalAngle.isEmpty() && FixationLightPolarAngle.isEmpty() && + FixationEye.isEmpty() && CurrentFractionNumber.isEmpty() && TreatmentDeliveryType.isEmpty() && TreatmentTerminationStatus.isEmpty() && @@ -305,6 +319,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty() DeliveredSecondaryMeterset.isEmpty() && SpecifiedTreatmentTime.isEmpty() && DeliveredTreatmentTime.isEmpty() && + DeliveredDepthDoseParametersSequence.isEmpty() && NumberOfControlPoints.isEmpty() && IonControlPointDeliverySequence.isEmpty(); } @@ -332,6 +347,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, ScanMode, "1", "1", "TreatmentSessionIonBeamSequence"); + getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "TreatmentSessionIonBeamSequence"); BeamLimitingDeviceLeafPairsSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "TreatmentSessionIonBeamSequence"); @@ -360,6 +376,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "TreatmentSessionIonBeamSequence"); + getAndCheckElementFromDataset(item, FixationEye, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, CurrentFractionNumber, "1", "2", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, TreatmentDeliveryType, "1", "2", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, TreatmentTerminationStatus, "1", "1", "TreatmentSessionIonBeamSequence"); @@ -371,6 +388,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, DeliveredSecondaryMeterset, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, SpecifiedTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, DeliveredTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence"); + DeliveredDepthDoseParametersSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "TreatmentSessionIonBeamSequence"); IonControlPointDeliverySequence.read(item, "1-n", "1", "TreatmentSessionIonBeamSequence"); result = EC_Normal; @@ -394,6 +412,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "TreatmentSessionIonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "TreatmentSessionIonBeamSequence"); if (result.good()) result = BeamLimitingDeviceLeafPairsSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "TreatmentSessionIonBeamSequence"); @@ -422,6 +441,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "TreatmentSessionIonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(CurrentFractionNumber), "1", "2", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(TreatmentDeliveryType), "1", "2", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(TreatmentTerminationStatus), "1", "1", "TreatmentSessionIonBeamSequence"); @@ -433,6 +453,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmDecimalString(DeliveredSecondaryMeterset), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(SpecifiedTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(DeliveredTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence"); + if (result.good()) result = DeliveredDepthDoseParametersSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "TreatmentSessionIonBeamSequence"); if (result.good()) result = IonControlPointDeliverySequence.write(item, "1-n", "1", "TreatmentSessionIonBeamSequence"); } @@ -539,6 +560,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getDeliveredTreatmentTime( } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationEye, value, pos); +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -557,6 +587,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightPolarAngle } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ModulatedScanModeType, value, pos); +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -1026,6 +1065,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setDeliveredTreatmentTime( } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationEye.putOFStringArray(value); + } + return result; +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -1044,6 +1096,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightPolarAngle } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ModulatedScanModeType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -1481,7 +1546,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::isValid() const } -unsigned long DRTTreatmentSessionIonBeamSequence::getNumberOfItems() const +size_t DRTTreatmentSessionIonBeamSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -1511,12 +1576,12 @@ OFCondition DRTTreatmentSessionIonBeamSequence::gotoNextItem() } -OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1531,12 +1596,12 @@ OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const unsigned long num } -OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -1551,7 +1616,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const unsigned long num } -OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const unsigned long num) +OFCondition DRTTreatmentSessionIonBeamSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -1587,7 +1652,7 @@ const DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequen } -OFCondition DRTTreatmentSessionIonBeamSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTTreatmentSessionIonBeamSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -1597,7 +1662,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::getItem(const unsigned long num, } -DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::getItem(const unsigned long num) +DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1607,7 +1672,7 @@ DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::ge } -const DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::getItem(const unsigned long num) const +const DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -1617,13 +1682,13 @@ const DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequen } -DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::operator[](const unsigned long num) +DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::operator[](const size_t num) { return getItem(num); } -const DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::operator[](const unsigned long num) const +const DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::operator[](const size_t num) const { return getItem(num); } @@ -1646,7 +1711,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::addItem(Item *&item) } -OFCondition DRTTreatmentSessionIonBeamSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTTreatmentSessionIonBeamSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -1669,7 +1734,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::insertItem(const unsigned long p } -OFCondition DRTTreatmentSessionIonBeamSequence::removeItem(const unsigned long pos) +OFCondition DRTTreatmentSessionIonBeamSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drttsmds.cc b/dcmrt/libsrc/drttsmds.cc index c70d66ce..9803b939 100644 --- a/dcmrt/libsrc/drttsmds.cc +++ b/dcmrt/libsrc/drttsmds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -298,7 +298,7 @@ OFBool DRTTreatmentSummaryMeasuredDoseReferenceSequence::isValid() const } -unsigned long DRTTreatmentSummaryMeasuredDoseReferenceSequence::getNumberOfItems() const +size_t DRTTreatmentSummaryMeasuredDoseReferenceSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -328,12 +328,12 @@ OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoNextItem() } -OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -348,12 +348,12 @@ OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const uns } -OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -368,7 +368,7 @@ OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const uns } -OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const unsigned long num) +OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -404,7 +404,7 @@ const DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummar } -OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -414,7 +414,7 @@ OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::getItem(const unsi } -DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::getItem(const unsigned long num) +DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -424,7 +424,7 @@ DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasu } -const DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::getItem(const unsigned long num) const +const DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -434,13 +434,13 @@ const DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummar } -DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::operator[](const unsigned long num) +DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::operator[](const size_t num) { return getItem(num); } -const DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::operator[](const unsigned long num) const +const DRTTreatmentSummaryMeasuredDoseReferenceSequence::Item &DRTTreatmentSummaryMeasuredDoseReferenceSequence::operator[](const size_t num) const { return getItem(num); } @@ -463,7 +463,7 @@ OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::addItem(Item *&ite } -OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -486,7 +486,7 @@ OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::insertItem(const u } -OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::removeItem(const unsigned long pos) +OFCondition DRTTreatmentSummaryMeasuredDoseReferenceSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drttts.cc b/dcmrt/libsrc/drttts.cc index bb271cdd..65d27762 100644 --- a/dcmrt/libsrc/drttts.cc +++ b/dcmrt/libsrc/drttts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -608,7 +608,7 @@ OFBool DRTToleranceTableSequence::isValid() const } -unsigned long DRTToleranceTableSequence::getNumberOfItems() const +size_t DRTToleranceTableSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -638,12 +638,12 @@ OFCondition DRTToleranceTableSequence::gotoNextItem() } -OFCondition DRTToleranceTableSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTToleranceTableSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -658,12 +658,12 @@ OFCondition DRTToleranceTableSequence::gotoItem(const unsigned long num, OFListI } -OFCondition DRTToleranceTableSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTToleranceTableSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -678,7 +678,7 @@ OFCondition DRTToleranceTableSequence::gotoItem(const unsigned long num, OFListC } -OFCondition DRTToleranceTableSequence::gotoItem(const unsigned long num) +OFCondition DRTToleranceTableSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -714,7 +714,7 @@ const DRTToleranceTableSequence::Item &DRTToleranceTableSequence::getCurrentItem } -OFCondition DRTToleranceTableSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTToleranceTableSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -724,7 +724,7 @@ OFCondition DRTToleranceTableSequence::getItem(const unsigned long num, Item *&i } -DRTToleranceTableSequence::Item &DRTToleranceTableSequence::getItem(const unsigned long num) +DRTToleranceTableSequence::Item &DRTToleranceTableSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -734,7 +734,7 @@ DRTToleranceTableSequence::Item &DRTToleranceTableSequence::getItem(const unsign } -const DRTToleranceTableSequence::Item &DRTToleranceTableSequence::getItem(const unsigned long num) const +const DRTToleranceTableSequence::Item &DRTToleranceTableSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -744,13 +744,13 @@ const DRTToleranceTableSequence::Item &DRTToleranceTableSequence::getItem(const } -DRTToleranceTableSequence::Item &DRTToleranceTableSequence::operator[](const unsigned long num) +DRTToleranceTableSequence::Item &DRTToleranceTableSequence::operator[](const size_t num) { return getItem(num); } -const DRTToleranceTableSequence::Item &DRTToleranceTableSequence::operator[](const unsigned long num) const +const DRTToleranceTableSequence::Item &DRTToleranceTableSequence::operator[](const size_t num) const { return getItem(num); } @@ -773,7 +773,7 @@ OFCondition DRTToleranceTableSequence::addItem(Item *&item) } -OFCondition DRTToleranceTableSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTToleranceTableSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -796,7 +796,7 @@ OFCondition DRTToleranceTableSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTToleranceTableSequence::removeItem(const unsigned long pos) +OFCondition DRTToleranceTableSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtudis.cc b/dcmrt/libsrc/drtudis.cc new file mode 100644 index 00000000..6905be2b --- /dev/null +++ b/dcmrt/libsrc/drtudis.cc @@ -0,0 +1,573 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTUDISequence + * + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtudis.h" + + +// --- item class --- + +DRTUDISequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + DeviceDescription(DCM_DeviceDescription), + UniqueDeviceIdentifier(DCM_UniqueDeviceIdentifier) +{ +} + + +DRTUDISequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + DeviceDescription(copy.DeviceDescription), + UniqueDeviceIdentifier(copy.UniqueDeviceIdentifier) +{ +} + + +DRTUDISequence::Item::~Item() +{ +} + + +DRTUDISequence::Item &DRTUDISequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + DeviceDescription = copy.DeviceDescription; + UniqueDeviceIdentifier = copy.UniqueDeviceIdentifier; + } + return *this; +} + + +void DRTUDISequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + UniqueDeviceIdentifier.clear(); + DeviceDescription.clear(); + } +} + + +OFBool DRTUDISequence::Item::isEmpty() +{ + return UniqueDeviceIdentifier.isEmpty() && + DeviceDescription.isEmpty(); +} + + +OFBool DRTUDISequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTUDISequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, UniqueDeviceIdentifier, "1", "1", "UDISequence"); + getAndCheckElementFromDataset(item, DeviceDescription, "1", "3", "UDISequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTUDISequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmUnlimitedText(UniqueDeviceIdentifier), "1", "1", "UDISequence"); + addElementToDataset(result, item, new DcmLongString(DeviceDescription), "1", "3", "UDISequence"); + } + return result; +} + + +OFCondition DRTUDISequence::Item::getDeviceDescription(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(DeviceDescription, value, pos); +} + + +OFCondition DRTUDISequence::Item::getUniqueDeviceIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(UniqueDeviceIdentifier, value, pos); +} + + +OFCondition DRTUDISequence::Item::setDeviceDescription(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = DeviceDescription.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTUDISequence::Item::setUniqueDeviceIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = UniqueDeviceIdentifier.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTUDISequence::DRTUDISequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTUDISequence::DRTUDISequence(const DRTUDISequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTUDISequence &DRTUDISequence::operator=(const DRTUDISequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTUDISequence::~DRTUDISequence() +{ + clear(); +} + + +void DRTUDISequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTUDISequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTUDISequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +size_t DRTUDISequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTUDISequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTUDISequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTUDISequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTUDISequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + size_t idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTUDISequence::gotoItem(const size_t num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTUDISequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTUDISequence::Item &DRTUDISequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTUDISequence::Item &DRTUDISequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTUDISequence::getItem(const size_t num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTUDISequence::Item &DRTUDISequence::getItem(const size_t num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTUDISequence::Item &DRTUDISequence::getItem(const size_t num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTUDISequence::Item &DRTUDISequence::operator[](const size_t num) +{ + return getItem(num); +} + + +const DRTUDISequence::Item &DRTUDISequence::operator[](const size_t num) const +{ + return getItem(num); +} + + +OFCondition DRTUDISequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTUDISequence::insertItem(const size_t pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTUDISequence::removeItem(const size_t pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTUDISequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_UDISequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_UDISequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTUDISequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_UDISequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtvls.cc b/dcmrt/libsrc/drtvls.cc index 3694971a..d0e33ce5 100644 --- a/dcmrt/libsrc/drtvls.cc +++ b/dcmrt/libsrc/drtvls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTVOILUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -282,7 +282,7 @@ OFBool DRTVOILUTSequence::isValid() const } -unsigned long DRTVOILUTSequence::getNumberOfItems() const +size_t DRTVOILUTSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -312,12 +312,12 @@ OFCondition DRTVOILUTSequence::gotoNextItem() } -OFCondition DRTVOILUTSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTVOILUTSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -332,12 +332,12 @@ OFCondition DRTVOILUTSequence::gotoItem(const unsigned long num, OFListIterator( } -OFCondition DRTVOILUTSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTVOILUTSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -352,7 +352,7 @@ OFCondition DRTVOILUTSequence::gotoItem(const unsigned long num, OFListConstIter } -OFCondition DRTVOILUTSequence::gotoItem(const unsigned long num) +OFCondition DRTVOILUTSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -388,7 +388,7 @@ const DRTVOILUTSequence::Item &DRTVOILUTSequence::getCurrentItem() const } -OFCondition DRTVOILUTSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTVOILUTSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -398,7 +398,7 @@ OFCondition DRTVOILUTSequence::getItem(const unsigned long num, Item *&item) } -DRTVOILUTSequence::Item &DRTVOILUTSequence::getItem(const unsigned long num) +DRTVOILUTSequence::Item &DRTVOILUTSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -408,7 +408,7 @@ DRTVOILUTSequence::Item &DRTVOILUTSequence::getItem(const unsigned long num) } -const DRTVOILUTSequence::Item &DRTVOILUTSequence::getItem(const unsigned long num) const +const DRTVOILUTSequence::Item &DRTVOILUTSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -418,13 +418,13 @@ const DRTVOILUTSequence::Item &DRTVOILUTSequence::getItem(const unsigned long nu } -DRTVOILUTSequence::Item &DRTVOILUTSequence::operator[](const unsigned long num) +DRTVOILUTSequence::Item &DRTVOILUTSequence::operator[](const size_t num) { return getItem(num); } -const DRTVOILUTSequence::Item &DRTVOILUTSequence::operator[](const unsigned long num) const +const DRTVOILUTSequence::Item &DRTVOILUTSequence::operator[](const size_t num) const { return getItem(num); } @@ -447,7 +447,7 @@ OFCondition DRTVOILUTSequence::addItem(Item *&item) } -OFCondition DRTVOILUTSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTVOILUTSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -470,7 +470,7 @@ OFCondition DRTVOILUTSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTVOILUTSequence::removeItem(const unsigned long pos) +OFCondition DRTVOILUTSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtwps.cc b/dcmrt/libsrc/drtwps.cc index 3ccbe58f..39557161 100644 --- a/dcmrt/libsrc/drtwps.cc +++ b/dcmrt/libsrc/drtwps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -260,7 +260,7 @@ OFBool DRTWedgePositionSequence::isValid() const } -unsigned long DRTWedgePositionSequence::getNumberOfItems() const +size_t DRTWedgePositionSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -290,12 +290,12 @@ OFCondition DRTWedgePositionSequence::gotoNextItem() } -OFCondition DRTWedgePositionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTWedgePositionSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -310,12 +310,12 @@ OFCondition DRTWedgePositionSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTWedgePositionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTWedgePositionSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -330,7 +330,7 @@ OFCondition DRTWedgePositionSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTWedgePositionSequence::gotoItem(const unsigned long num) +OFCondition DRTWedgePositionSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -366,7 +366,7 @@ const DRTWedgePositionSequence::Item &DRTWedgePositionSequence::getCurrentItem() } -OFCondition DRTWedgePositionSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTWedgePositionSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -376,7 +376,7 @@ OFCondition DRTWedgePositionSequence::getItem(const unsigned long num, Item *&it } -DRTWedgePositionSequence::Item &DRTWedgePositionSequence::getItem(const unsigned long num) +DRTWedgePositionSequence::Item &DRTWedgePositionSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -386,7 +386,7 @@ DRTWedgePositionSequence::Item &DRTWedgePositionSequence::getItem(const unsigned } -const DRTWedgePositionSequence::Item &DRTWedgePositionSequence::getItem(const unsigned long num) const +const DRTWedgePositionSequence::Item &DRTWedgePositionSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -396,13 +396,13 @@ const DRTWedgePositionSequence::Item &DRTWedgePositionSequence::getItem(const un } -DRTWedgePositionSequence::Item &DRTWedgePositionSequence::operator[](const unsigned long num) +DRTWedgePositionSequence::Item &DRTWedgePositionSequence::operator[](const size_t num) { return getItem(num); } -const DRTWedgePositionSequence::Item &DRTWedgePositionSequence::operator[](const unsigned long num) const +const DRTWedgePositionSequence::Item &DRTWedgePositionSequence::operator[](const size_t num) const { return getItem(num); } @@ -425,7 +425,7 @@ OFCondition DRTWedgePositionSequence::addItem(Item *&item) } -OFCondition DRTWedgePositionSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTWedgePositionSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -448,7 +448,7 @@ OFCondition DRTWedgePositionSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTWedgePositionSequence::removeItem(const unsigned long pos) +OFCondition DRTWedgePositionSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtwrs.cc b/dcmrt/libsrc/drtwrs.cc index bac12560..3af75fcd 100644 --- a/dcmrt/libsrc/drtwrs.cc +++ b/dcmrt/libsrc/drtwrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWADORetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -222,7 +222,7 @@ OFBool DRTWADORetrievalSequence::isValid() const } -unsigned long DRTWADORetrievalSequence::getNumberOfItems() const +size_t DRTWADORetrievalSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -252,12 +252,12 @@ OFCondition DRTWADORetrievalSequence::gotoNextItem() } -OFCondition DRTWADORetrievalSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTWADORetrievalSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -272,12 +272,12 @@ OFCondition DRTWADORetrievalSequence::gotoItem(const unsigned long num, OFListIt } -OFCondition DRTWADORetrievalSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTWADORetrievalSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -292,7 +292,7 @@ OFCondition DRTWADORetrievalSequence::gotoItem(const unsigned long num, OFListCo } -OFCondition DRTWADORetrievalSequence::gotoItem(const unsigned long num) +OFCondition DRTWADORetrievalSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -328,7 +328,7 @@ const DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::getCurrentItem() } -OFCondition DRTWADORetrievalSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTWADORetrievalSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -338,7 +338,7 @@ OFCondition DRTWADORetrievalSequence::getItem(const unsigned long num, Item *&it } -DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::getItem(const unsigned long num) +DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -348,7 +348,7 @@ DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::getItem(const unsigned } -const DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::getItem(const unsigned long num) const +const DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -358,13 +358,13 @@ const DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::getItem(const un } -DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::operator[](const unsigned long num) +DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::operator[](const size_t num) { return getItem(num); } -const DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::operator[](const unsigned long num) const +const DRTWADORetrievalSequence::Item &DRTWADORetrievalSequence::operator[](const size_t num) const { return getItem(num); } @@ -387,7 +387,7 @@ OFCondition DRTWADORetrievalSequence::addItem(Item *&item) } -OFCondition DRTWADORetrievalSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTWADORetrievalSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -410,7 +410,7 @@ OFCondition DRTWADORetrievalSequence::insertItem(const unsigned long pos, Item * } -OFCondition DRTWADORetrievalSequence::removeItem(const unsigned long pos) +OFCondition DRTWADORetrievalSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtwrsrs.cc b/dcmrt/libsrc/drtwrsrs.cc index c2a748b9..a1cbbcd7 100644 --- a/dcmrt/libsrc/drtwrsrs.cc +++ b/dcmrt/libsrc/drtwrsrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWADORSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -222,7 +222,7 @@ OFBool DRTWADORSRetrievalSequence::isValid() const } -unsigned long DRTWADORSRetrievalSequence::getNumberOfItems() const +size_t DRTWADORSRetrievalSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -252,12 +252,12 @@ OFCondition DRTWADORSRetrievalSequence::gotoNextItem() } -OFCondition DRTWADORSRetrievalSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTWADORSRetrievalSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -272,12 +272,12 @@ OFCondition DRTWADORSRetrievalSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTWADORSRetrievalSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTWADORSRetrievalSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -292,7 +292,7 @@ OFCondition DRTWADORSRetrievalSequence::gotoItem(const unsigned long num, OFList } -OFCondition DRTWADORSRetrievalSequence::gotoItem(const unsigned long num) +OFCondition DRTWADORSRetrievalSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -328,7 +328,7 @@ const DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::getCurrentIt } -OFCondition DRTWADORSRetrievalSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTWADORSRetrievalSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -338,7 +338,7 @@ OFCondition DRTWADORSRetrievalSequence::getItem(const unsigned long num, Item *& } -DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::getItem(const unsigned long num) +DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -348,7 +348,7 @@ DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::getItem(const unsi } -const DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::getItem(const unsigned long num) const +const DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -358,13 +358,13 @@ const DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::getItem(cons } -DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::operator[](const unsigned long num) +DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::operator[](const size_t num) { return getItem(num); } -const DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::operator[](const unsigned long num) const +const DRTWADORSRetrievalSequence::Item &DRTWADORSRetrievalSequence::operator[](const size_t num) const { return getItem(num); } @@ -387,7 +387,7 @@ OFCondition DRTWADORSRetrievalSequence::addItem(Item *&item) } -OFCondition DRTWADORSRetrievalSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTWADORSRetrievalSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -410,7 +410,7 @@ OFCondition DRTWADORSRetrievalSequence::insertItem(const unsigned long pos, Item } -OFCondition DRTWADORSRetrievalSequence::removeItem(const unsigned long pos) +OFCondition DRTWADORSRetrievalSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtws.cc b/dcmrt/libsrc/drtws.cc index 99b9f528..ba3ab71e 100644 --- a/dcmrt/libsrc/drtws.cc +++ b/dcmrt/libsrc/drtws.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -508,7 +508,7 @@ OFBool DRTWedgeSequence::isValid() const } -unsigned long DRTWedgeSequence::getNumberOfItems() const +size_t DRTWedgeSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -538,12 +538,12 @@ OFCondition DRTWedgeSequence::gotoNextItem() } -OFCondition DRTWedgeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTWedgeSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -558,12 +558,12 @@ OFCondition DRTWedgeSequence::gotoItem(const unsigned long num, OFListIterator(I } -OFCondition DRTWedgeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTWedgeSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -578,7 +578,7 @@ OFCondition DRTWedgeSequence::gotoItem(const unsigned long num, OFListConstItera } -OFCondition DRTWedgeSequence::gotoItem(const unsigned long num) +OFCondition DRTWedgeSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -614,7 +614,7 @@ const DRTWedgeSequence::Item &DRTWedgeSequence::getCurrentItem() const } -OFCondition DRTWedgeSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTWedgeSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -624,7 +624,7 @@ OFCondition DRTWedgeSequence::getItem(const unsigned long num, Item *&item) } -DRTWedgeSequence::Item &DRTWedgeSequence::getItem(const unsigned long num) +DRTWedgeSequence::Item &DRTWedgeSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -634,7 +634,7 @@ DRTWedgeSequence::Item &DRTWedgeSequence::getItem(const unsigned long num) } -const DRTWedgeSequence::Item &DRTWedgeSequence::getItem(const unsigned long num) const +const DRTWedgeSequence::Item &DRTWedgeSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -644,13 +644,13 @@ const DRTWedgeSequence::Item &DRTWedgeSequence::getItem(const unsigned long num) } -DRTWedgeSequence::Item &DRTWedgeSequence::operator[](const unsigned long num) +DRTWedgeSequence::Item &DRTWedgeSequence::operator[](const size_t num) { return getItem(num); } -const DRTWedgeSequence::Item &DRTWedgeSequence::operator[](const unsigned long num) const +const DRTWedgeSequence::Item &DRTWedgeSequence::operator[](const size_t num) const { return getItem(num); } @@ -673,7 +673,7 @@ OFCondition DRTWedgeSequence::addItem(Item *&item) } -OFCondition DRTWedgeSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTWedgeSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -696,7 +696,7 @@ OFCondition DRTWedgeSequence::insertItem(const unsigned long pos, Item *&item) } -OFCondition DRTWedgeSequence::removeItem(const unsigned long pos) +OFCondition DRTWedgeSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/libsrc/drtxrs.cc b/dcmrt/libsrc/drtxrs.cc index a9fffff7..e133a968 100644 --- a/dcmrt/libsrc/drtxrs.cc +++ b/dcmrt/libsrc/drtxrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2017, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTXDSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016e + * File created on 2017-01-25 17:55:32 * */ @@ -251,7 +251,7 @@ OFBool DRTXDSRetrievalSequence::isValid() const } -unsigned long DRTXDSRetrievalSequence::getNumberOfItems() const +size_t DRTXDSRetrievalSequence::getNumberOfItems() const { return SequenceOfItems.size(); } @@ -281,12 +281,12 @@ OFCondition DRTXDSRetrievalSequence::gotoNextItem() } -OFCondition DRTXDSRetrievalSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +OFCondition DRTXDSRetrievalSequence::gotoItem(const size_t num, OFListIterator(Item *) &iterator) { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -301,12 +301,12 @@ OFCondition DRTXDSRetrievalSequence::gotoItem(const unsigned long num, OFListIte } -OFCondition DRTXDSRetrievalSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +OFCondition DRTXDSRetrievalSequence::gotoItem(const size_t num, OFListConstIterator(Item *) &iterator) const { OFCondition result = EC_IllegalCall; if (!SequenceOfItems.empty()) { - unsigned long idx = num + 1; + size_t idx = num + 1; iterator = SequenceOfItems.begin(); const OFListConstIterator(Item *) last = SequenceOfItems.end(); while ((--idx > 0) && (iterator != last)) @@ -321,7 +321,7 @@ OFCondition DRTXDSRetrievalSequence::gotoItem(const unsigned long num, OFListCon } -OFCondition DRTXDSRetrievalSequence::gotoItem(const unsigned long num) +OFCondition DRTXDSRetrievalSequence::gotoItem(const size_t num) { return gotoItem(num, CurrentItem); } @@ -357,7 +357,7 @@ const DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::getCurrentItem() c } -OFCondition DRTXDSRetrievalSequence::getItem(const unsigned long num, Item *&item) +OFCondition DRTXDSRetrievalSequence::getItem(const size_t num, Item *&item) { OFListIterator(Item *) iterator; OFCondition result = gotoItem(num, iterator); @@ -367,7 +367,7 @@ OFCondition DRTXDSRetrievalSequence::getItem(const unsigned long num, Item *&ite } -DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::getItem(const unsigned long num) +DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::getItem(const size_t num) { OFListIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -377,7 +377,7 @@ DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::getItem(const unsigned l } -const DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::getItem(const unsigned long num) const +const DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::getItem(const size_t num) const { OFListConstIterator(Item *) iterator; if (gotoItem(num, iterator).good()) @@ -387,13 +387,13 @@ const DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::getItem(const unsi } -DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::operator[](const unsigned long num) +DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::operator[](const size_t num) { return getItem(num); } -const DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::operator[](const unsigned long num) const +const DRTXDSRetrievalSequence::Item &DRTXDSRetrievalSequence::operator[](const size_t num) const { return getItem(num); } @@ -416,7 +416,7 @@ OFCondition DRTXDSRetrievalSequence::addItem(Item *&item) } -OFCondition DRTXDSRetrievalSequence::insertItem(const unsigned long pos, Item *&item) +OFCondition DRTXDSRetrievalSequence::insertItem(const size_t pos, Item *&item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) @@ -439,7 +439,7 @@ OFCondition DRTXDSRetrievalSequence::insertItem(const unsigned long pos, Item *& } -OFCondition DRTXDSRetrievalSequence::removeItem(const unsigned long pos) +OFCondition DRTXDSRetrievalSequence::removeItem(const size_t pos) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultSequence) diff --git a/dcmrt/tests/Makefile.dep b/dcmrt/tests/Makefile.dep index 8535fc6d..9e87cb0f 100644 --- a/dcmrt/tests/Makefile.dep +++ b/dcmrt/tests/Makefile.dep @@ -118,7 +118,8 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ @@ -128,16 +129,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -151,17 +153,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -183,9 +185,13 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtssrs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \ ../include/dcmtk/dcmrt/seq/drtcbars.h \ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \ @@ -194,8 +200,9 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ ../include/dcmtk/dcmrt/seq/drtmacds.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ + ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \ ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \ ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ @@ -225,10 +232,11 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \ ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \ ../include/dcmtk/dcmrt/seq/drtfgss.h \ @@ -419,27 +427,30 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ ../include/dcmtk/dcmrt/seq/drtbvcps.h \ ../include/dcmtk/dcmrt/seq/drtrbas8.h \ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ @@ -455,8 +466,11 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -466,15 +480,19 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ ../include/dcmtk/dcmrt/seq/drttts.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drttms9.h + ../include/dcmtk/dcmrt/seq/drttms9.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h diff --git a/dcmrt/tests/Makefile.in b/dcmrt/tests/Makefile.in index ca218aa3..0c34ff75 100644 --- a/dcmrt/tests/Makefile.in +++ b/dcmrt/tests/Makefile.in @@ -21,7 +21,7 @@ LOCALINCLUDES = -I$(dcmdatadir)/include -I$(oflogdir)/include -I$(ofstddir)/incl LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmimgledir)/libsrc -L$(dcmdatadir)/libsrc \ -L$(oflogdir)/libsrc -L$(ofstddir)/libsrc LOCALLIBS = -ldcmrt -ldcmimgle -ldcmdata -loflog -lofstd \ - $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) test_objs = tests.o tsearch.o objs = drttest.o $(test_objs) @@ -34,7 +34,7 @@ drttest: drttest.o $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $@.o $(LOCALLIBS) $(MATHLIBS) $(LIBS) tests: $(test_objs) - $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(ICONVLIBS) $(LIBS) + $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(LIBS) install: all diff --git a/dcmseg/apps/CMakeLists.txt b/dcmseg/apps/CMakeLists.txt deleted file mode 100644 index 50c5e989..00000000 --- a/dcmseg/apps/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -# declare executables -FOREACH(PROGRAM makeseg rwseg) - DCMTK_ADD_EXECUTABLE(${PROGRAM} ${PROGRAM}) -ENDFOREACH(PROGRAM) - -# make sure executables are linked to the corresponding libraries -FOREACH(PROGRAM makeseg rwseg) - DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmseg dcmfg dcmiod dcmdata oflog ofstd) -ENDFOREACH(PROGRAM) diff --git a/dcmseg/include/dcmtk/dcmseg/segdoc.h b/dcmseg/include/dcmtk/dcmseg/segdoc.h index 5e70154c..c6d01294 100644 --- a/dcmseg/include/dcmtk/dcmseg/segdoc.h +++ b/dcmseg/include/dcmtk/dcmseg/segdoc.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -26,6 +26,7 @@ #include "dcmtk/ofstd/ofvector.h" // for OFVector #include "dcmtk/dcmiod/iodimage.h" // common image IOD attribute access #include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmiod/modimagepixel.h" #include "dcmtk/dcmiod/modsegmentationseries.h" // for segmentation series module #include "dcmtk/dcmiod/modenhequipment.h" // for enhanced general equipment module @@ -48,7 +49,7 @@ class FGDerivationImage; /** Class representing an object of the "Segmentation SOP Class". */ class DCMTK_DCMSEG_EXPORT DcmSegmentation -: public DcmIODImage +: public DcmIODImage > { public: @@ -61,7 +62,9 @@ public: // -------------------- loading and saving --------------------- - /** Load Segmentation object from item file + /** Static method to load a Segmentation object from a file. + * The memory of the resulting Segmentation object has to be freed by the + * caller. * @param filename The file to read from * @param segmentation The resulting segmentation object. NULL if dataset * could not be read successfully. @@ -70,7 +73,9 @@ public: static OFCondition loadFile(const OFString& filename, DcmSegmentation*& segmentation); - /** Load Segmentation object from item object. + /** Static method to load a Segmentation object from a dataset object. + * The memory of the resulting Segmentation object has to be freed by the + * caller. * @param dataset The dataset to read from * @param segmentation The resulting segmentation object. NULL if dataset * could not be read successfully. @@ -98,6 +103,8 @@ public: /** Factory method to create a binary segmentation object from the minimal * set of information required. The actual segments and the frame data is * added separately. + * The memory of the resulting Segmentation object has to be freed by the + * caller. * @param segmentation The resulting segmentation object if provided data is * valid. Otherwise NULL is returned. * @param rows Number of rows of segmentation frame data @@ -116,6 +123,8 @@ public: /** Factory method to create a fractional segmentation object from the minimal * set of information required. The actual segments and the frame data is * added separately. + * The memory of the resulting Segmentation object has to be freed by the + * caller. * @param segmentation The resulting segmentation object if provided data is * valid. Otherwise NULL is returned. * @param rows Number of rows of segmentation frame data @@ -138,6 +147,8 @@ public: const ContentIdentificationMacro& contentIdentification); /** Helps to create a valid Derivation Image Functional Group Macro + * The memory of the resulting functional group object has to be freed by the + * caller. * @param derivationImages to image SOP instances * @param derivationDescription Free text describing how the derivation was * achieved. @@ -146,22 +157,6 @@ public: static FGDerivationImage* createDerivationImageFG(const OFVector& derivationImages, const OFString& derivationDescription); - /** Take over general information for Patient, Study, Series and/or Frame of Reference - * from existing file - * @param filename The filename to read from - * @param usePatient If OFTrue, Patient level information is imported - * @param useStudy If OFTrue, Study level information is imported - * @param useSeries If OFTrue, Series level information is imported - * @param useFoR If OFTrue, Frame of Reference information is imported - * @return EC_Normal if reading was successful (i.e.\ if any information could - * be read), otherwise an error is returned - */ - OFCondition importPatientStudyFoR(const OFString& filename, - const OFBool usePatient, - const OFBool useStudy, - const OFBool useSeries, - const OFBool useFoR = OFFalse); - // -------------------- access --------------------- /** Get number of frames, based on the number of items in the shared @@ -273,7 +268,7 @@ public: Uint16& segmentNumber); /** Add a functional group for all frames - * @param group The group to be added as shared functional group + * @param group The group to be added as shared functional group. The * @return EC_Normal if adding was successful, error otherwise */ virtual OFCondition addForAllFrames(const FGBase& group); @@ -287,7 +282,9 @@ public: * @param segmentNumber The logical segment number (>=1) this frame refers to. * The segment identified by the segmentNumber must already exist. * @param perFrameInformation The functional groups that identify this frame (i.e. - * which are planned to be not common for all other frames) + * which are planned to be not common for all other frames). The + * functional groups are copied, so ownership of each group stays + * with the caller no matter what the method returns. * @return EC_Normal if adding was successful, error otherwise */ virtual OFCondition addFrame(Uint8* pixData, @@ -314,6 +311,7 @@ public: * lossy compression steps. Only one value (and no backslash) if only * one step was performed. * @param checkValues If OFTrue, the data provided is checked for validity + * @return EC_Normal if lossy compression info could be set, error code otherwise */ virtual OFCondition setLossyImageCompressionFlag(const OFString& ratios, const OFString& methods, @@ -323,6 +321,7 @@ public: * @param equipmentInfo The description of the equipment used to create * this segmentation * @param checkValue If OFTrue, the data provided is checked for validity + * @return EC_Normal if equipment information could be set successfully, error otherwise */ virtual OFCondition setEquipmentInfo(const IODGeneralEquipmentModule::EquipmentInfo& equipmentInfo, const OFBool checkValue = OFTrue); @@ -331,6 +330,7 @@ public: * @param contentIdentification The content identification of this segmentation * @param checkValue If OFTrue, the data provided is checked for validity * (as possible) + * @return EC_Normal if content identification could be set correctly, OFFalse otherwise */ virtual OFCondition setContentIdentification(const ContentIdentificationMacro& contentIdentification, const OFBool checkValue = OFTrue); @@ -373,7 +373,7 @@ protected: * the image pixel module manually. * @return The Image Pixel Module */ - virtual IODImagePixelModule& getImagePixel(); + virtual IODImagePixelModule& getImagePixel(); /** Initialize IOD rules */ @@ -591,6 +591,8 @@ private: /** Returns the number of bits per frame, taking into account binary versus * fractional segmentation (member variables) and the dimensions of the * image (parameters) + * @param rows The number of rows returned + * @param cols The number of columns returned * @return Bits used by a single frame of the segmentation */ size_t getBitsPerFrame(const Uint16& rows, diff --git a/dcmseg/include/dcmtk/dcmseg/segtypes.h b/dcmseg/include/dcmtk/dcmseg/segtypes.h index a29e6e67..cf1645e9 100644 --- a/dcmseg/include/dcmtk/dcmseg/segtypes.h +++ b/dcmseg/include/dcmtk/dcmseg/segtypes.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -46,10 +46,10 @@ extern DCMTK_DCMSEG_EXPORT OFLogger DCM_dcmsegLogger; *-----------------------*/ /** DICOM assigns unique number to each Segment within the Segmentation object - * using an unsigned 16 Bit Integer within "Segment Number". Thus a maximum number - * of 65536 segments can be stored. + * using an unsigned 16 Bit Integer within "Segment Number" starting with 1. + * Thus maximally 65535 segments can be stored. */ -const Uint32 DCM_SEG_MAX_SEGMENTS = 65536; +const Uint32 DCM_SEG_MAX_SEGMENTS = 65535; /** @name Specific error conditions for module dcmseg * These error codes can be used in addition to the general purpose diff --git a/dcmseg/libsrc/CMakeLists.txt b/dcmseg/libsrc/CMakeLists.txt index 9f25f322..a315d539 100644 --- a/dcmseg/libsrc/CMakeLists.txt +++ b/dcmseg/libsrc/CMakeLists.txt @@ -2,4 +2,3 @@ DCMTK_ADD_LIBRARY(dcmseg segdoc segment segtypes segutils) DCMTK_TARGET_LINK_MODULES(dcmseg dcmfg dcmiod dcmdata ofstd oflog) -DCMTK_TARGET_LINK_LIBRARIES(dcmseg ${ZLIB_LIBS} ${WIN32_STD_LIBRARIES}) diff --git a/dcmseg/libsrc/Makefile.dep b/dcmseg/libsrc/Makefile.dep index a9ee8fbf..beca0557 100644 --- a/dcmseg/libsrc/Makefile.dep +++ b/dcmseg/libsrc/Makefile.dep @@ -10,13 +10,22 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmseg/segdoc.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/cnvrsn.def \ + ../../ofstd/include/dcmtk/ofstd/diag/vsprfw.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def \ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ - ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ @@ -123,7 +132,6 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ ../../ofstd/include/dcmtk/ofstd/ofoption.h \ - ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ @@ -133,6 +141,8 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ @@ -212,6 +222,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -244,11 +256,9 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -279,11 +289,19 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \ ../include/dcmtk/dcmseg/segdoc.h \ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/cnvrsn.def \ + ../../ofstd/include/dcmtk/ofstd/diag/vsprfw.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def \ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ ../../ofstd/include/dcmtk/ofstd/ofoption.h \ - ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ @@ -292,6 +310,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ @@ -362,6 +382,8 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -392,11 +414,9 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ diff --git a/dcmseg/libsrc/segdoc.cc b/dcmseg/libsrc/segdoc.cc index 2261fc9b..75d0d0a7 100644 --- a/dcmseg/libsrc/segdoc.cc +++ b/dcmseg/libsrc/segdoc.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015-2016, Open Connections GmbH + * Copyright (C) 2015-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -33,11 +33,11 @@ // default constructor (protected, instance creation via create() function) DcmSegmentation::DcmSegmentation() -: DcmIODImage(), - m_SegmentationSeries(DcmIODImage::getData(), DcmIODImage::getRules()), - m_EnhancedGeneralEquipmentModule(DcmIODImage::getData(), DcmIODImage::getRules()), - m_FG(DcmIODImage::getData(), DcmIODImage::getRules()), - m_DimensionModule(DcmIODImage::getData(), DcmIODImage::getRules()), +: DcmSegmentation::IODImage(OFin_place >), + m_SegmentationSeries(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), + m_EnhancedGeneralEquipmentModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), + m_FG(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), + m_DimensionModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), m_Frames(), m_ImageType("DERIVED\\PRIMARY"), m_ContentIdentificationMacro(), @@ -182,15 +182,8 @@ OFCondition DcmSegmentation::createCommon(DcmSegmentation*& segmentation, segmentation = NULL; return EC_InvalidValue; } - OFDate date; - date.setCurrentDate(); - date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */); - segmentation->getGeneralImage().setContentDate(tempstr); - OFTime time; - time.setCurrentTime(); - time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse); - segmentation->getGeneralImage().setContentTime(tempstr); + DcmIODUtil::setContentDateAndTimeNow(segmentation->getGeneralImage()); result = segmentation->setEquipmentInfo(equipmentInfo, OFTrue /* check */); } @@ -227,7 +220,7 @@ OFCondition DcmSegmentation::read(DcmItem &dataset) } // Read attributes in base classes - DcmIODImage::read(dataset); + DcmSegmentation::IODImage::read(dataset); // Read Segmentation Series Module m_SegmentationSeries.read(dataset); @@ -309,37 +302,12 @@ OFCondition DcmSegmentation::write(DcmItem &dataset) // Multi-frame Functional Groups Module (except functional groups itself) // SOP Common Module // Common Instance Reference Module - if (result.good()) result = DcmIODImage::write(dataset); + if (result.good()) result = DcmSegmentation::IODImage::write(dataset); return result; } -OFCondition DcmSegmentation::importPatientStudyFoR(const OFString& filename, - const OFBool usePatient, - const OFBool useStudy, - const OFBool useSeries, - const OFBool useFoR) -{ - DcmFileFormat dcmff; - OFCondition result = dcmff.loadFile(filename.c_str()); - if ( result.good() ) - { - DcmDataset *dset = dcmff.getDataset(); - if (dset != NULL) - { - result = import(*dset, usePatient, useStudy, useSeries, useFoR); - } - else - { - DCMSEG_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information"); - result = EC_IllegalCall; - } - } - return result; -} - - FGInterface& DcmSegmentation::getFunctionalGroups() { return m_FGInterface; @@ -361,7 +329,7 @@ size_t DcmSegmentation::getNumberOfSegments() IODGeneralEquipmentModule& DcmSegmentation::getEquipment() { - return DcmIODImage::getEquipment(); + return DcmSegmentation::IODImage::getEquipment(); } @@ -378,12 +346,13 @@ OFCondition DcmSegmentation::addSegment(DcmSegment* seg, if (seg == NULL) return EC_IllegalParameter; - if (m_Segments.size() == DCM_SEG_MAX_SEGMENTS) + if (m_Segments.size() >= DCM_SEG_MAX_SEGMENTS) { return SG_EC_MaxSegmentsReached; } - segmentNumber = m_Segments.size() + 1; + // Casting is safe since we made sure number of segments fits into 16 bit + segmentNumber = OFstatic_cast(Uint16, m_Segments.size() + 1); m_Segments.push_back(seg); return EC_Normal; } @@ -878,7 +847,8 @@ OFCondition DcmSegmentation::writeDataset(DcmItem& dataset) OFCondition DcmSegmentation::writeMultiFrameFunctionalGroupsModule(DcmItem& dataset) { - m_FG.setNumberOfFrames(m_Frames.size()); + Uint16 numFrames = DcmIODUtil::limitMaxFrames(m_Frames.size(), "More than 65535 frames provided, limiting Number of Frames to 65535"); + m_FG.setNumberOfFrames(numFrames); OFCondition result = m_FG.write(dataset); if (result.good()) m_FGInterface.write(dataset); @@ -899,12 +869,13 @@ OFCondition DcmSegmentation::writeMultiFrameDimensionModule(DcmItem& dataset) OFCondition DcmSegmentation::writeFractionalFrames(DcmItem& dataset) { + Uint16 numFrames = DcmIODUtil::limitMaxFrames(m_Frames.size(), "More than 65535 fractional frames provided, will only write 65535"); OFCondition result; Uint16 rows,cols; rows = cols = 0; getImagePixel().getRows(rows); getImagePixel().getColumns(cols); - size_t numBytes = getTotalBytesRequired(rows, cols, m_Frames.size()); + size_t numBytes = getTotalBytesRequired(rows, cols, numFrames); Uint8* pixdata = new Uint8[numBytes]; OFVector::iterator it = m_Frames.begin(); // Just copy bytes for each frame as is @@ -921,12 +892,13 @@ OFCondition DcmSegmentation::writeFractionalFrames(DcmItem& dataset) OFCondition DcmSegmentation::writeBinaryFrames(DcmItem& dataset) { - OFCondition result; - Uint16 rows,cols; + Uint16 numFrames, rows, cols; rows = cols = 0; + numFrames = DcmIODUtil::limitMaxFrames(m_Frames.size(), "More than 65535 binary frames provided, will only write 65535"); + OFCondition result; getImagePixel().getRows(rows); getImagePixel().getColumns(cols); - size_t numBytes = getTotalBytesRequired(rows, cols, m_Frames.size()); + size_t numBytes = getTotalBytesRequired(rows, cols, numFrames); // Holds the pixels for all frames. Each bit represents a pixel which is either // 1 (part of segment) or 0 (not part of segment. All frames are directly // concatenated, i.e. there are no unused bits between the frames. @@ -1036,7 +1008,7 @@ OFCondition DcmSegmentation::writeSegmentationImageModule(DcmItem& dataset) void DcmSegmentation::clearData() { - DcmIODImage::clearData(); + DcmSegmentation::IODImage::clearData(); m_FG.clearData(); m_FGInterface.clear(); DcmIODUtil::freeContainer(m_Frames); @@ -1180,9 +1152,9 @@ OFCondition DcmSegmentation::readSegmentationType(DcmItem& item) // protected override of public base class function -IODImagePixelModule& DcmSegmentation::getImagePixel() +IODImagePixelModule& DcmSegmentation::getImagePixel() { - return DcmIODImage::getImagePixel(); + return *OFget >( &DcmSegmentation::IODImage::getImagePixel() ); } @@ -1253,7 +1225,7 @@ OFCondition DcmSegmentation::decompress(DcmDataset& dset) } else // We do not accept any transfer syntax that could be lossy compressed { - DCMSEG_ERROR("No conversion from RLE original to uncompressed transfer syntax possible!"); + DCMSEG_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Segmentation objects!"); result = IOD_EC_CannotDecompress; } } diff --git a/dcmseg/tests/Makefile.in b/dcmseg/tests/Makefile.in index 515c4dbc..c899b672 100644 --- a/dcmseg/tests/Makefile.in +++ b/dcmseg/tests/Makefile.in @@ -21,7 +21,7 @@ include $(configdir)/@common_makefile@ LIBDIRS = -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc \ -L$(dcmdatadir)/libsrc -L$(dcmioddir)/libsrc -L$(dcmfgdir)/libsrc -LOCALLIBS = -ldcmseg -ldcmfg -ldcmiod -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(ICONVLIBS) +LOCALLIBS = -ldcmseg -ldcmfg -ldcmiod -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(CHARCONVLIBS) LOCALINCLUDES = -I$(top_srcdir)/include -I$(ofstddir)/include -I$(oflogdir)/include \ -I$(dcmdatadir)/include -I$(dcmioddir)/include -I$(dcmfgdir)/include \ @@ -34,7 +34,7 @@ progs = tests all: $(progs) tests: $(test_objs) - $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(ICONVLIBS) $(LIBS) + $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(LIBS) check: tests diff --git a/dcmsign/apps/Makefile.dep b/dcmsign/apps/Makefile.dep index c14b759a..b044fe06 100644 --- a/dcmsign/apps/Makefile.dep +++ b/dcmsign/apps/Makefile.dep @@ -52,8 +52,9 @@ dcmsign.o: dcmsign.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsign/sibrsapr.h ../include/dcmtk/dcmsign/siautopr.h \ ../include/dcmtk/dcmsign/sicreapr.h ../include/dcmtk/dcmsign/simac.h \ ../include/dcmtk/dcmsign/simd5.h ../include/dcmtk/dcmsign/sisha1.h \ - ../include/dcmtk/dcmsign/siripemd.h ../include/dcmtk/dcmsign/siprivat.h \ - ../include/dcmtk/dcmsign/sicert.h \ + ../include/dcmtk/dcmsign/sisha256.h ../include/dcmtk/dcmsign/sisha384.h \ + ../include/dcmtk/dcmsign/sisha512.h ../include/dcmtk/dcmsign/siripemd.h \ + ../include/dcmtk/dcmsign/siprivat.h ../include/dcmtk/dcmsign/sicert.h \ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ diff --git a/dcmsign/apps/Makefile.in b/dcmsign/apps/Makefile.in index 8967a9fa..f19ba740 100644 --- a/dcmsign/apps/Makefile.in +++ b/dcmsign/apps/Makefile.in @@ -18,7 +18,7 @@ dcmdatadir = $(top_srcdir)/../dcmdata LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/include LIBDIRS = -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc -L$(dcmdatadir)/libsrc -LOCALLIBS = -ldcmdsig -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(OPENSSLLIBS) $(ICONVLIBS) +LOCALLIBS = -ldcmdsig -ldcmdata -loflog -lofstd $(ZLIBLIBS) $(OPENSSLLIBS) $(CHARCONVLIBS) objs = dcmsign.o progs = dcmsign diff --git a/dcmsign/apps/dcmsign.cc b/dcmsign/apps/dcmsign.cc index 669ca366..1a0d81e9 100644 --- a/dcmsign/apps/dcmsign.cc +++ b/dcmsign/apps/dcmsign.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2000-2012, OFFIS e.V. + * Copyright (C) 2000-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -60,6 +60,9 @@ static OFLogger dcmsignLogger = OFLog::getLogger("dcmtk.apps." OFFIS_CONSOLE_APP #include "dcmtk/dcmsign/simac.h" #include "dcmtk/dcmsign/simd5.h" #include "dcmtk/dcmsign/sisha1.h" +#include "dcmtk/dcmsign/sisha256.h" +#include "dcmtk/dcmsign/sisha384.h" +#include "dcmtk/dcmsign/sisha512.h" #include "dcmtk/dcmsign/siripemd.h" #include "dcmtk/dcmsign/siprivat.h" #include "dcmtk/dcmsign/sicert.h" @@ -777,6 +780,10 @@ int main(int argc, char *argv[]) cmd.addOption("--mac-ripemd160", "+mr", "use RIPEMD 160 (default)"); cmd.addOption("--mac-sha1", "+ms", "use SHA-1"); cmd.addOption("--mac-md5", "+mm", "use MD 5"); + cmd.addOption("--mac-sha256", "+m2", "use SHA-256"); + cmd.addOption("--mac-sha384", "+m3", "use SHA-384"); + cmd.addOption("--mac-sha512", "+m5", "use SHA-512"); + cmd.addSubGroup("tag selection:"); cmd.addOption("--tag", "-t", 1, "[t]ag: \"gggg,eeee\" or dictionary name", "sign only specified tag\n(this option can be specified multiple times)"); cmd.addOption("--tag-file", "-tf", 1, "[f]ilename: string", "read list of tags from text file"); @@ -956,6 +963,22 @@ int main(int argc, char *argv[]) app.checkDependence("--mac-md5", "--sign or --sign-item", (opt_operation == DSO_sign) || (opt_operation == DSO_signItem)); opt_mac = new SiMD5(); } + if (cmd.findOption("--mac-sha256")) + { + app.checkDependence("--mac-sha256", "--sign or --sign-item", (opt_operation == DSO_sign) || (opt_operation == DSO_signItem)); + opt_mac = new SiSHA256(); + } + if (cmd.findOption("--mac-sha384")) + { + app.checkDependence("--mac-sha384", "--sign or --sign-item", (opt_operation == DSO_sign) || (opt_operation == DSO_signItem)); + opt_mac = new SiSHA384(); + } + if (cmd.findOption("--mac-sha512")) + { + app.checkDependence("--mac-sha512", "--sign or --sign-item", (opt_operation == DSO_sign) || (opt_operation == DSO_signItem)); + opt_mac = new SiSHA512(); + } + cmd.endOptionBlock(); if (opt_mac == NULL) opt_mac = new SiRIPEMD160(); diff --git a/dcmsign/include/dcmtk/dcmsign/sisha256.h b/dcmsign/include/dcmtk/dcmsign/sisha256.h new file mode 100644 index 00000000..56200099 --- /dev/null +++ b/dcmsign/include/dcmtk/dcmsign/sisha256.h @@ -0,0 +1,96 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsign + * + * Author: Marco Eichelberg + * + * Purpose: + * classes: SiSHA256 + * + */ + +#ifndef SISHA256_H +#define SISHA256_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmsign/simac.h" +#include "dcmtk/dcmsign/sitypes.h" + +#ifdef WITH_OPENSSL + +struct SHA256state_st; +typedef struct SHA256state_st SHA256_CTX; + +/** + * a class implementing the hash function SHA256 + */ +class DCMTK_DCMSIGN_EXPORT SiSHA256 : public SiMAC +{ +public: + /// default constructor + SiSHA256(); + + /// destructor + virtual ~SiSHA256(); + + /** initializes the MAC algorithm. + * @return status code + */ + virtual OFCondition initialize(); + + /** feeds data into the MAC algorithm + * @param data pointer to raw data to be fed into the MAC, must not be NULL + * @param length number of bytes in raw data array + * @return status code + */ + virtual OFCondition digest(const unsigned char *data, unsigned long length); + + /** finalizes the MAC and writes it to the given output array, + * which must be at least getSize() bytes large. + * After a call to finalize, the MAC algorithm must be initialized + * again, see initialize(). + * @param result pointer to array of getSize() bytes into which the MAC is written + * @return status code + */ + virtual OFCondition finalize(unsigned char *result); + + /** returns the size of a MAC in bytes. + * @return block size for this MAC algorithm + */ + virtual unsigned long getSize() const; + + /** returns the type of MAC algorithm computed by this object + * @return type of MAC algorithm + */ + virtual E_MACType macType() const; + + /** returns the DICOM identifier for this MAC algorithm + * @return DICOM defined term for algorithm + */ + virtual const char *getDefinedTerm() const; + +private: + + /// private undefined copy constructor + SiSHA256(SiSHA256& arg); + + /// private undefined copy assignment operator + SiSHA256& operator=(SiSHA256& arg); + + /// OpenSSL SHA256 context + SHA256_CTX *ctx; +}; + +#endif +#endif diff --git a/dcmsign/include/dcmtk/dcmsign/sisha384.h b/dcmsign/include/dcmtk/dcmsign/sisha384.h new file mode 100644 index 00000000..c7dbdb73 --- /dev/null +++ b/dcmsign/include/dcmtk/dcmsign/sisha384.h @@ -0,0 +1,96 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsign + * + * Author: Marco Eichelberg + * + * Purpose: + * classes: SiSHA384 + * + */ + +#ifndef SISHA384_H +#define SISHA384_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmsign/simac.h" +#include "dcmtk/dcmsign/sitypes.h" + +#ifdef WITH_OPENSSL + +struct SHA512state_st; +typedef struct SHA512state_st SHA512_CTX; + +/** + * a class implementing the hash function SHA384 + */ +class DCMTK_DCMSIGN_EXPORT SiSHA384 : public SiMAC +{ +public: + /// default constructor + SiSHA384(); + + /// destructor + virtual ~SiSHA384(); + + /** initializes the MAC algorithm. + * @return status code + */ + virtual OFCondition initialize(); + + /** feeds data into the MAC algorithm + * @param data pointer to raw data to be fed into the MAC, must not be NULL + * @param length number of bytes in raw data array + * @return status code + */ + virtual OFCondition digest(const unsigned char *data, unsigned long length); + + /** finalizes the MAC and writes it to the given output array, + * which must be at least getSize() bytes large. + * After a call to finalize, the MAC algorithm must be initialized + * again, see initialize(). + * @param result pointer to array of getSize() bytes into which the MAC is written + * @return status code + */ + virtual OFCondition finalize(unsigned char *result); + + /** returns the size of a MAC in bytes. + * @return block size for this MAC algorithm + */ + virtual unsigned long getSize() const; + + /** returns the type of MAC algorithm computed by this object + * @return type of MAC algorithm + */ + virtual E_MACType macType() const; + + /** returns the DICOM identifier for this MAC algorithm + * @return DICOM defined term for algorithm + */ + virtual const char *getDefinedTerm() const; + +private: + + /// private undefined copy constructor + SiSHA384(SiSHA384& arg); + + /// private undefined copy assignment operator + SiSHA384& operator=(SiSHA384& arg); + + /// OpenSSL SHA384 context + SHA512_CTX *ctx; +}; + +#endif +#endif diff --git a/dcmsign/include/dcmtk/dcmsign/sisha512.h b/dcmsign/include/dcmtk/dcmsign/sisha512.h new file mode 100644 index 00000000..b5d0b148 --- /dev/null +++ b/dcmsign/include/dcmtk/dcmsign/sisha512.h @@ -0,0 +1,96 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsign + * + * Author: Marco Eichelberg + * + * Purpose: + * classes: SiSHA512 + * + */ + +#ifndef SISHA512_H +#define SISHA512_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmsign/simac.h" +#include "dcmtk/dcmsign/sitypes.h" + +#ifdef WITH_OPENSSL + +struct SHA512state_st; +typedef struct SHA512state_st SHA512_CTX; + +/** + * a class implementing the hash function SHA512 + */ +class DCMTK_DCMSIGN_EXPORT SiSHA512 : public SiMAC +{ +public: + /// default constructor + SiSHA512(); + + /// destructor + virtual ~SiSHA512(); + + /** initializes the MAC algorithm. + * @return status code + */ + virtual OFCondition initialize(); + + /** feeds data into the MAC algorithm + * @param data pointer to raw data to be fed into the MAC, must not be NULL + * @param length number of bytes in raw data array + * @return status code + */ + virtual OFCondition digest(const unsigned char *data, unsigned long length); + + /** finalizes the MAC and writes it to the given output array, + * which must be at least getSize() bytes large. + * After a call to finalize, the MAC algorithm must be initialized + * again, see initialize(). + * @param result pointer to array of getSize() bytes into which the MAC is written + * @return status code + */ + virtual OFCondition finalize(unsigned char *result); + + /** returns the size of a MAC in bytes. + * @return block size for this MAC algorithm + */ + virtual unsigned long getSize() const; + + /** returns the type of MAC algorithm computed by this object + * @return type of MAC algorithm + */ + virtual E_MACType macType() const; + + /** returns the DICOM identifier for this MAC algorithm + * @return DICOM defined term for algorithm + */ + virtual const char *getDefinedTerm() const; + +private: + + /// private undefined copy constructor + SiSHA512(SiSHA512& arg); + + /// private undefined copy assignment operator + SiSHA512& operator=(SiSHA512& arg); + + /// OpenSSL SHA512 context + SHA512_CTX *ctx; +}; + +#endif +#endif diff --git a/dcmsign/include/dcmtk/dcmsign/sitypes.h b/dcmsign/include/dcmtk/dcmsign/sitypes.h index b74d0bf9..7e949c9a 100644 --- a/dcmsign/include/dcmtk/dcmsign/sitypes.h +++ b/dcmsign/include/dcmtk/dcmsign/sitypes.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2012, OFFIS e.V. + * Copyright (C) 1998-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -38,6 +38,9 @@ #define SI_DEFTERMS_MD5 "MD5" #define SI_DEFTERMS_X509CERT "X509_1993_SIG" #define SI_DEFTERMS_CMS_TS "CMS_TS" +#define SI_DEFTERMS_SHA256 "SHA256" +#define SI_DEFTERMS_SHA384 "SHA384" +#define SI_DEFTERMS_SHA512 "SHA512" /** type of key for public key cryptosystem @@ -69,9 +72,17 @@ enum E_MACType EMT_RIPEMD160, /// MD5 - EMT_MD5 -}; + EMT_MD5, + + /// SHA-256 + EMT_SHA256, + /// SHA-384 + EMT_SHA384, + + /// SHA-512 + EMT_SHA512 +}; /* * specific error conditions for module dcmsign diff --git a/dcmsign/libsrc/CMakeLists.txt b/dcmsign/libsrc/CMakeLists.txt index f9484b4f..d3812810 100644 --- a/dcmsign/libsrc/CMakeLists.txt +++ b/dcmsign/libsrc/CMakeLists.txt @@ -1,5 +1,5 @@ # create library from source files -DCMTK_ADD_LIBRARY(dcmdsig dcsignat siautopr sibrsapr sicert sicertvf sicreapr sidsa simaccon simd5 sinullpr siprivat siripemd sirsa sisha1 sisprof sitypes) +DCMTK_ADD_LIBRARY(dcmdsig dcsignat siautopr sibrsapr sicert sicertvf sicreapr sidsa simaccon simd5 sinullpr siprivat siripemd sirsa sisha1 sisprof sitypes sisha256 sisha384 sisha512) DCMTK_TARGET_LINK_MODULES(dcmdsig ofstd dcmdata) DCMTK_TARGET_LINK_LIBRARIES(dcmdsig ${OPENSSL_LIBS}) diff --git a/dcmsign/libsrc/Makefile.dep b/dcmsign/libsrc/Makefile.dep index 84d73a77..e24c1a16 100644 --- a/dcmsign/libsrc/Makefile.dep +++ b/dcmsign/libsrc/Makefile.dep @@ -74,7 +74,9 @@ dcsignat.o: dcsignat.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ ../include/dcmtk/dcmsign/simd5.h ../include/dcmtk/dcmsign/siprivat.h \ ../include/dcmtk/dcmsign/siripemd.h ../include/dcmtk/dcmsign/sisha1.h \ - ../include/dcmtk/dcmsign/sisprof.h ../include/dcmtk/dcmsign/sitstamp.h + ../include/dcmtk/dcmsign/sisha256.h ../include/dcmtk/dcmsign/sisha384.h \ + ../include/dcmtk/dcmsign/sisha512.h ../include/dcmtk/dcmsign/sisprof.h \ + ../include/dcmtk/dcmsign/sitstamp.h siautopr.o: siautopr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsign/siautopr.h ../include/dcmtk/dcmsign/sibrsapr.h \ ../include/dcmtk/dcmsign/sisprof.h ../include/dcmtk/dcmsign/sitypes.h \ @@ -496,6 +498,48 @@ sisha1.o: sisha1.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsign/sidefine.h \ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h +sisha256.o: sisha256.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmsign/sisha256.h ../include/dcmtk/dcmsign/simac.h \ + ../include/dcmtk/dcmsign/sitypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../include/dcmtk/dcmsign/sidefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h +sisha384.o: sisha384.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmsign/sisha384.h ../include/dcmtk/dcmsign/simac.h \ + ../include/dcmtk/dcmsign/sitypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../include/dcmtk/dcmsign/sidefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h +sisha512.o: sisha512.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmsign/sisha512.h ../include/dcmtk/dcmsign/simac.h \ + ../include/dcmtk/dcmsign/sitypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../include/dcmtk/dcmsign/sidefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h sisprof.o: sisprof.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsign/sisprof.h ../include/dcmtk/dcmsign/sitypes.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ diff --git a/dcmsign/libsrc/Makefile.in b/dcmsign/libsrc/Makefile.in index 02574011..4576b165 100644 --- a/dcmsign/libsrc/Makefile.in +++ b/dcmsign/libsrc/Makefile.in @@ -21,7 +21,7 @@ LOCALDEFS = objs = dcsignat.o sicert.o sidsa.o simd5.o siprivat.o sirsa.o sisprof.o \ siautopr.o sicreapr.o simaccon.o sinullpr.o siripemd.o sisha1.o \ - sitypes.o sicertvf.o sibrsapr.o + sitypes.o sicertvf.o sibrsapr.o sisha256.o sisha384.o sisha512.o library = libdcmdsig.$(LIBEXT) diff --git a/dcmsign/libsrc/dcsignat.cc b/dcmsign/libsrc/dcsignat.cc index 07399eb1..5c0caf27 100644 --- a/dcmsign/libsrc/dcsignat.cc +++ b/dcmsign/libsrc/dcsignat.cc @@ -45,6 +45,9 @@ #include "dcmtk/dcmsign/siprivat.h" #include "dcmtk/dcmsign/siripemd.h" #include "dcmtk/dcmsign/sisha1.h" +#include "dcmtk/dcmsign/sisha256.h" +#include "dcmtk/dcmsign/sisha384.h" +#include "dcmtk/dcmsign/sisha512.h" #include "dcmtk/dcmsign/sisprof.h" #include "dcmtk/dcmsign/sitstamp.h" @@ -615,6 +618,9 @@ OFCondition DcmSignature::verifyCurrent() if (macidentifier == SI_DEFTERMS_RIPEMD160) mac = new SiRIPEMD160(); else if (macidentifier == SI_DEFTERMS_SHA1) mac = new SiSHA1(); else if (macidentifier == SI_DEFTERMS_MD5) mac = new SiMD5(); + else if (macidentifier == SI_DEFTERMS_SHA256) mac = new SiSHA256(); + else if (macidentifier == SI_DEFTERMS_SHA384) mac = new SiSHA384(); + else if (macidentifier == SI_DEFTERMS_SHA512) mac = new SiSHA512(); if (mac == NULL) result = SI_EC_VerificationFailed_UnsupportedMACAlgorithm; } else result = SI_EC_VerificationFailed_NoMAC; } else result = SI_EC_VerificationFailed_NoMAC; diff --git a/dcmsign/libsrc/sicert.cc b/dcmsign/libsrc/sicert.cc index 1f03b5a3..ea025fcd 100644 --- a/dcmsign/libsrc/sicert.cc +++ b/dcmsign/libsrc/sicert.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2010, OFFIS e.V. + * Copyright (C) 1998-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -39,6 +39,10 @@ BEGIN_EXTERN_C #include END_EXTERN_C +#if OPENSSL_VERSION_NUMBER < 0x10100000L +#define EVP_PKEY_id(key) key->type +#endif + SiCertificate::SiCertificate() : x509(NULL) { @@ -57,7 +61,7 @@ E_KeyType SiCertificate::getKeyType() EVP_PKEY *pkey = X509_extract_key(x509); if (pkey) { - switch(pkey->type) + switch(EVP_PKEY_id(pkey)) { case EVP_PKEY_RSA: result = EKT_RSA; @@ -85,7 +89,7 @@ SiAlgorithm *SiCertificate::createAlgorithmForPublicKey() EVP_PKEY *pkey = X509_extract_key(x509); if (pkey) { - switch(pkey->type) + switch(EVP_PKEY_id(pkey)) { case EVP_PKEY_RSA: return new SiRSA(EVP_PKEY_get1_RSA(pkey)); @@ -111,7 +115,7 @@ OFCondition SiCertificate::loadCertificate(const char *filename, int filetype) x509 = NULL; if (filename) { - BIO *in = BIO_new(BIO_s_file_internal()); + BIO *in = BIO_new(BIO_s_file()); if (in) { if (BIO_read_filename(in, filename) > 0) diff --git a/dcmsign/libsrc/sicertvf.cc b/dcmsign/libsrc/sicertvf.cc index 6b76b9d8..493840c9 100644 --- a/dcmsign/libsrc/sicertvf.cc +++ b/dcmsign/libsrc/sicertvf.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2010, OFFIS e.V. + * Copyright (C) 1998-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -72,7 +72,7 @@ OFCondition SiCertificateVerifier::addCertificateRevocationList(const char *file X509_CRL *x509crl = NULL; if (fileName) { - BIO *in = BIO_new(BIO_s_file_internal()); + BIO *in = BIO_new(BIO_s_file()); if (in) { if (BIO_read_filename(in, fileName) > 0) @@ -107,11 +107,13 @@ OFCondition SiCertificateVerifier::verifyCertificate(SiCertificate& certificate) X509 *rawcert = certificate.getRawCertificate(); if (rawcert == NULL) return SI_EC_VerificationFailed_NoCertificate; - X509_STORE_CTX ctx; - X509_STORE_CTX_init(&ctx, x509store, rawcert, NULL); - int ok = X509_verify_cert(&ctx); /* returns nonzero if successful */ - errorCode = X509_STORE_CTX_get_error(&ctx); - X509_STORE_CTX_cleanup(&ctx); + X509_STORE_CTX *ctx = X509_STORE_CTX_new(); + X509_STORE_CTX_init(ctx, x509store, rawcert, NULL); + int ok = X509_verify_cert(ctx); /* returns nonzero if successful */ + errorCode = X509_STORE_CTX_get_error(ctx); + X509_STORE_CTX_cleanup(ctx); + X509_STORE_CTX_free(ctx); + if (ok) return EC_Normal; else return SI_EC_VerificationFailed_NoTrust; } diff --git a/dcmsign/libsrc/sidsa.cc b/dcmsign/libsrc/sidsa.cc index 5a791455..a2dc3844 100644 --- a/dcmsign/libsrc/sidsa.cc +++ b/dcmsign/libsrc/sidsa.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2010, OFFIS e.V. + * Copyright (C) 1998-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -66,6 +66,15 @@ OFCondition SiDSA::sign( case EMT_MD5: openSSLmac = NID_md5; break; + case EMT_SHA256: + openSSLmac = NID_sha256; + break; + case EMT_SHA384: + openSSLmac = NID_sha384; + break; + case EMT_SHA512: + openSSLmac = NID_sha512; + break; } unsigned int sigLen = 0; int error = DSA_sign(openSSLmac, inputHash, (unsigned int)inputHashSize, outputSignature, &sigLen, dsa); @@ -97,6 +106,15 @@ OFCondition SiDSA::verify( case EMT_MD5: openSSLmac = NID_md5; break; + case EMT_SHA256: + openSSLmac = NID_sha256; + break; + case EMT_SHA384: + openSSLmac = NID_sha384; + break; + case EMT_SHA512: + openSSLmac = NID_sha512; + break; } // we have to cast away const on inputSignature yet because of OpenSSL limitations diff --git a/dcmsign/libsrc/siprivat.cc b/dcmsign/libsrc/siprivat.cc index 2bf60684..7a092a42 100644 --- a/dcmsign/libsrc/siprivat.cc +++ b/dcmsign/libsrc/siprivat.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2011, OFFIS e.V. + * Copyright (C) 1998-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -38,6 +38,9 @@ BEGIN_EXTERN_C #include END_EXTERN_C +#if OPENSSL_VERSION_NUMBER < 0x10100000L +#define EVP_PKEY_id(key) key->type +#endif /* buf : buffer to write password into * size : length of buffer in bytes @@ -96,7 +99,7 @@ OFCondition SiPrivateKey::loadPrivateKey(const char *filename, int filetype) pkey = NULL; if (filename) { - BIO *in = BIO_new(BIO_s_file_internal()); + BIO *in = BIO_new(BIO_s_file()); if (in) { if (BIO_read_filename(in, filename) > 0) @@ -125,7 +128,7 @@ E_KeyType SiPrivateKey::getKeyType() const E_KeyType result = EKT_none; if (pkey) { - switch(pkey->type) + switch(EVP_PKEY_id(pkey)) { case EVP_PKEY_RSA: result = EKT_RSA; @@ -149,7 +152,7 @@ SiAlgorithm *SiPrivateKey::createAlgorithmForPrivateKey() { if (pkey) { - switch(pkey->type) + switch(EVP_PKEY_id(pkey)) { case EVP_PKEY_RSA: return new SiRSA(EVP_PKEY_get1_RSA(pkey)); diff --git a/dcmsign/libsrc/sirsa.cc b/dcmsign/libsrc/sirsa.cc index 85a8df50..ab7605a2 100644 --- a/dcmsign/libsrc/sirsa.cc +++ b/dcmsign/libsrc/sirsa.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2010, OFFIS e.V. + * Copyright (C) 1998-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -65,6 +65,15 @@ OFCondition SiRSA::sign( case EMT_MD5: openSSLmac = NID_md5; break; + case EMT_SHA256: + openSSLmac = NID_sha256; + break; + case EMT_SHA384: + openSSLmac = NID_sha384; + break; + case EMT_SHA512: + openSSLmac = NID_sha512; + break; } unsigned int sigLen = 0; // we have to cast away const on inputHash yet because of OpenSSL limitations @@ -98,6 +107,15 @@ OFCondition SiRSA::verify( case EMT_MD5: openSSLmac = NID_md5; break; + case EMT_SHA256: + openSSLmac = NID_sha256; + break; + case EMT_SHA384: + openSSLmac = NID_sha384; + break; + case EMT_SHA512: + openSSLmac = NID_sha512; + break; } // we have to cast away const on inputHash yet because of OpenSSL limitations // we have to cast away const on inputSignature yet because of OpenSSL limitations diff --git a/dcmsign/libsrc/sisha256.cc b/dcmsign/libsrc/sisha256.cc new file mode 100644 index 00000000..0900ec77 --- /dev/null +++ b/dcmsign/libsrc/sisha256.cc @@ -0,0 +1,89 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsign + * + * Author: Marco Eichelberg + * + * Purpose: + * classes: SiSHA256 + * + */ + +#include "dcmtk/config/osconfig.h" + +#ifdef WITH_OPENSSL + +#include "dcmtk/dcmsign/sisha256.h" +#include "dcmtk/dcmdata/dcerror.h" + +#define INCLUDE_CSTDLIB +#include "dcmtk/ofstd/ofstdinc.h" + +BEGIN_EXTERN_C +#include +END_EXTERN_C + + +SiSHA256::SiSHA256() +: ctx(new SHA256_CTX()) +{ + initialize(); +} + +SiSHA256::~SiSHA256() +{ + delete ctx; +} + +unsigned long SiSHA256::getSize() const +{ + return SHA256_DIGEST_LENGTH; +} + +OFCondition SiSHA256::initialize() +{ + SHA256_Init(ctx); + return EC_Normal; +} + +OFCondition SiSHA256::digest(const unsigned char *data, unsigned long length) +{ + if (length == 0) return EC_Normal; + if ((data == NULL)||(ctx == NULL)) return EC_IllegalCall; + SHA256_Update(ctx, data, length); + return EC_Normal; +} + +OFCondition SiSHA256::finalize(unsigned char *result) +{ + if ((result == NULL)||(ctx == NULL)) return EC_IllegalCall; + SHA256_Final(result, ctx); + return EC_Normal; +} + +E_MACType SiSHA256::macType() const +{ + return EMT_SHA256; +} + +const char *SiSHA256::getDefinedTerm() const +{ + return SI_DEFTERMS_SHA256; +} + +#else /* WITH_OPENSSL */ + +int sisha256_cc_dummy_to_keep_linker_from_moaning = 0; + +#endif diff --git a/dcmsign/libsrc/sisha384.cc b/dcmsign/libsrc/sisha384.cc new file mode 100644 index 00000000..797c6192 --- /dev/null +++ b/dcmsign/libsrc/sisha384.cc @@ -0,0 +1,89 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsign + * + * Author: Marco Eichelberg + * + * Purpose: + * classes: SiSHA384 + * + */ + +#include "dcmtk/config/osconfig.h" + +#ifdef WITH_OPENSSL + +#include "dcmtk/dcmsign/sisha384.h" +#include "dcmtk/dcmdata/dcerror.h" + +#define INCLUDE_CSTDLIB +#include "dcmtk/ofstd/ofstdinc.h" + +BEGIN_EXTERN_C +#include +END_EXTERN_C + + +SiSHA384::SiSHA384() +: ctx(new SHA512_CTX()) +{ + initialize(); +} + +SiSHA384::~SiSHA384() +{ + delete ctx; +} + +unsigned long SiSHA384::getSize() const +{ + return SHA_DIGEST_LENGTH; +} + +OFCondition SiSHA384::initialize() +{ + SHA384_Init(ctx); + return EC_Normal; +} + +OFCondition SiSHA384::digest(const unsigned char *data, unsigned long length) +{ + if (length == 0) return EC_Normal; + if ((data == NULL)||(ctx == NULL)) return EC_IllegalCall; + SHA384_Update(ctx, data, length); + return EC_Normal; +} + +OFCondition SiSHA384::finalize(unsigned char *result) +{ + if ((result == NULL)||(ctx == NULL)) return EC_IllegalCall; + SHA384_Final(result, ctx); + return EC_Normal; +} + +E_MACType SiSHA384::macType() const +{ + return EMT_SHA384; +} + +const char *SiSHA384::getDefinedTerm() const +{ + return SI_DEFTERMS_SHA384; +} + +#else /* WITH_OPENSSL */ + +int sisha384_cc_dummy_to_keep_linker_from_moaning = 0; + +#endif diff --git a/dcmsign/libsrc/sisha512.cc b/dcmsign/libsrc/sisha512.cc new file mode 100644 index 00000000..3b08cf1c --- /dev/null +++ b/dcmsign/libsrc/sisha512.cc @@ -0,0 +1,89 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsign + * + * Author: Marco Eichelberg + * + * Purpose: + * classes: SiSHA512 + * + */ + +#include "dcmtk/config/osconfig.h" + +#ifdef WITH_OPENSSL + +#include "dcmtk/dcmsign/sisha512.h" +#include "dcmtk/dcmdata/dcerror.h" + +#define INCLUDE_CSTDLIB +#include "dcmtk/ofstd/ofstdinc.h" + +BEGIN_EXTERN_C +#include +END_EXTERN_C + + +SiSHA512::SiSHA512() +: ctx(new SHA512_CTX()) +{ + initialize(); +} + +SiSHA512::~SiSHA512() +{ + delete ctx; +} + +unsigned long SiSHA512::getSize() const +{ + return SHA512_DIGEST_LENGTH; +} + +OFCondition SiSHA512::initialize() +{ + SHA512_Init(ctx); + return EC_Normal; +} + +OFCondition SiSHA512::digest(const unsigned char *data, unsigned long length) +{ + if (length == 0) return EC_Normal; + if ((data == NULL)||(ctx == NULL)) return EC_IllegalCall; + SHA512_Update(ctx, data, length); + return EC_Normal; +} + +OFCondition SiSHA512::finalize(unsigned char *result) +{ + if ((result == NULL)||(ctx == NULL)) return EC_IllegalCall; + SHA512_Final(result, ctx); + return EC_Normal; +} + +E_MACType SiSHA512::macType() const +{ + return EMT_SHA512; +} + +const char *SiSHA512::getDefinedTerm() const +{ + return SI_DEFTERMS_SHA512; +} + +#else /* WITH_OPENSSL */ + +int sisha512_cc_dummy_to_keep_linker_from_moaning = 0; + +#endif diff --git a/dcmsign/libsrc/sitypes.cc b/dcmsign/libsrc/sitypes.cc index b6d62788..26d62db0 100644 --- a/dcmsign/libsrc/sitypes.cc +++ b/dcmsign/libsrc/sitypes.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2012, OFFIS e.V. + * Copyright (C) 1998-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -39,7 +39,7 @@ makeOFConditionConst(SI_EC_TransferSyntaxDoesNotMatchProfile, OFM_dcmsi makeOFConditionConst(SI_EC_VerificationFailed_NoCertificate, OFM_dcmsign, 10, OF_error, "signature verification failed: certificate is missing or unreadable"); makeOFConditionConst(SI_EC_VerificationFailed_NoMAC, OFM_dcmsign, 11, OF_error, "signature verification failed: MAC parameters not be found or incomplete"); makeOFConditionConst(SI_EC_VerificationFailed_NoSignature, OFM_dcmsign, 12, OF_error, "signature verification failed: signature item incomplete"); -makeOFConditionConst(SI_EC_VerificationFailed_UnsupportedMACAlgorithm, OFM_dcmsign, 13, OF_error, "signature verification failed: the MAC algorithm not supported"); +makeOFConditionConst(SI_EC_VerificationFailed_UnsupportedMACAlgorithm, OFM_dcmsign, 13, OF_error, "signature verification failed: MAC algorithm not supported"); makeOFConditionConst(SI_EC_VerificationFailed_Corrupted, OFM_dcmsign, 14, OF_error, "signature verification failed: signature is invalid (document corrupted)"); makeOFConditionConst(SI_EC_VerificationFailed_NoTrust, OFM_dcmsign, 16, OF_error, "signature verification failed: certificate issued by unknown CA"); diff --git a/dcmsr/apps/Makefile.in b/dcmsr/apps/Makefile.in index cfdd8e7a..6de51592 100644 --- a/dcmsr/apps/Makefile.in +++ b/dcmsr/apps/Makefile.in @@ -23,7 +23,7 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/incl LIBDIRS = -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc -L$(oflogdir)/libsrc \ -L$(dcmdatadir)/libsrc -L$(dcmimgledir)/libsrc -L$(dcmimagedir)/libsrc LOCALLIBS = -ldcmsr -ldcmimage -ldcmimgle -ldcmdata -loflog -lofstd $(TIFFLIBS) \ - $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) objs = dsrdump.o dsr2html.o dsr2xml.o xml2dsr.o progs = dsrdump dsr2html dsr2xml xml2dsr diff --git a/dcmsr/apps/dsr2html.cc b/dcmsr/apps/dsr2html.cc index 4a7f77e3..25395d9c 100644 --- a/dcmsr/apps/dsr2html.cc +++ b/dcmsr/apps/dsr2html.cc @@ -33,7 +33,7 @@ #ifdef WITH_ZLIB #include /* for zlibVersion() */ #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION #include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #endif @@ -82,7 +82,7 @@ static OFCondition renderFile(STD_NAMESPACE ostream &out, } else result = EC_MemoryExhausted; -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION /* convert all DICOM strings to UTF-8 (if requested) */ if (result.good() && convertToUTF8) { @@ -216,7 +216,7 @@ int main(int argc, char *argv[]) cmd.addOption("--charset-assume", "+Ca", 1, "[c]harset: string", "assume charset c if no extended charset declared"); cmd.addOption("--charset-check-all", "check all data elements with string values\n(default: only PN, LO, LT, SH, ST, UC and UT)"); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION cmd.addOption("--convert-to-utf8", "+U8", "convert all element values that are affected\nby Specific Character Set (0008,0005) to UTF-8"); #endif cmd.addGroup("output options:"); @@ -260,7 +260,7 @@ int main(int argc, char *argv[]) { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used:"; -#if !defined(WITH_ZLIB) && !defined(WITH_LIBICONV) +#if !defined(WITH_ZLIB) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) COUT << " none" << OFendl; #else COUT << OFendl; @@ -268,7 +268,7 @@ int main(int argc, char *argv[]) #ifdef WITH_ZLIB COUT << "- ZLIB, Version " << zlibVersion() << OFendl; #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; #endif return 0; @@ -338,7 +338,7 @@ int main(int argc, char *argv[]) cmd.endOptionBlock(); if (cmd.findOption("--charset-check-all")) opt_checkAllStrings = OFTrue; -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (cmd.findOption("--convert-to-utf8")) opt_convertToUTF8 = OFTrue; #endif diff --git a/dcmsr/apps/dsr2xml.cc b/dcmsr/apps/dsr2xml.cc index fa8137e9..85bc0b44 100644 --- a/dcmsr/apps/dsr2xml.cc +++ b/dcmsr/apps/dsr2xml.cc @@ -33,7 +33,7 @@ #ifdef WITH_ZLIB #include /* for zlibVersion() */ #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION #include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #endif @@ -120,7 +120,7 @@ int main(int argc, char *argv[]) E_FileReadMode opt_readMode = ERM_autoDetect; E_TransferSyntax opt_ixfer = EXS_Unknown; OFBool opt_checkAllStrings = OFFalse; -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION OFBool opt_convertToUTF8 = OFFalse; #endif @@ -162,7 +162,7 @@ int main(int argc, char *argv[]) cmd.addOption("--charset-assume", "+Ca", 1, "[c]harset: string", "assume charset c if no extended charset declared"); cmd.addOption("--charset-check-all", "+Cc", "check all data elements with string values\n(default: only PN, LO, LT, SH, ST, UC and UT)"); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION cmd.addOption("--convert-to-utf8", "+U8", "convert all element values that are affected\nby Specific Character Set (0008,0005) to UTF-8"); #endif cmd.addGroup("output options:"); @@ -192,7 +192,7 @@ int main(int argc, char *argv[]) { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used:"; -#if !defined(WITH_ZLIB) && !defined(WITH_LIBICONV) +#if !defined(WITH_ZLIB) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) COUT << " none" << OFendl; #else COUT << OFendl; @@ -200,7 +200,7 @@ int main(int argc, char *argv[]) #ifdef WITH_ZLIB COUT << "- ZLIB, Version " << zlibVersion() << OFendl; #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; #endif return 0; @@ -260,7 +260,7 @@ int main(int argc, char *argv[]) cmd.endOptionBlock(); if (cmd.findOption("--charset-check-all")) opt_checkAllStrings = OFTrue; -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (cmd.findOption("--convert-to-utf8")) opt_convertToUTF8 = OFTrue; #endif @@ -354,7 +354,7 @@ int main(int argc, char *argv[]) else if (charset == "hebrew") opt_defaultCharset = "ISO_IR 138"; } -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION /* convert all DICOM strings to UTF-8 (if requested) */ if (opt_convertToUTF8) { diff --git a/dcmsr/apps/dsrdump.cc b/dcmsr/apps/dsrdump.cc index 8bdad9eb..c73e59a9 100644 --- a/dcmsr/apps/dsrdump.cc +++ b/dcmsr/apps/dsrdump.cc @@ -33,7 +33,7 @@ #ifdef WITH_ZLIB #include /* for zlibVersion() */ #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION #include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #endif @@ -83,7 +83,7 @@ static OFCondition dumpFile(STD_NAMESPACE ostream &out, } else result = EC_MemoryExhausted; -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (result.good()) { if (convertToUTF8) @@ -173,7 +173,7 @@ int main(int argc, char *argv[]) cmd.addOption("--ignore-item-errors", "-Ee", "do not abort on content item errors, just warn\n(e.g. missing value type specific attributes)"); cmd.addOption("--skip-invalid-items", "-Ei", "skip invalid content items (incl. sub-tree)"); cmd.addOption("--disable-vr-checker", "-Dv", "disable check for VR-conformant string values"); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION cmd.addSubGroup("specific character set:"); cmd.addOption("--convert-to-utf8", "+U8", "convert all element values that are affected\nby Specific Character Set (0008,0005) to UTF-8"); #endif @@ -215,7 +215,7 @@ int main(int argc, char *argv[]) { app.printHeader(OFTrue /*print host identifier*/); COUT << OFendl << "External libraries used:"; -#if !defined(WITH_ZLIB) && !defined(WITH_LIBICONV) +#if !defined(WITH_ZLIB) && !defined(DCMTK_ENABLE_CHARSET_CONVERSION) COUT << " none" << OFendl; #else COUT << OFendl; @@ -223,7 +223,7 @@ int main(int argc, char *argv[]) #ifdef WITH_ZLIB COUT << "- ZLIB, Version " << zlibVersion() << OFendl; #endif -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION COUT << "- " << OFCharacterEncoding::getLibraryVersionString() << OFendl; #endif return 0; @@ -280,7 +280,7 @@ int main(int argc, char *argv[]) opt_readFlags |= DSRTypes::RF_skipInvalidContentItems; if (cmd.findOption("--disable-vr-checker")) dcmEnableVRCheckerForStringValues.set(OFFalse); -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION if (cmd.findOption("--convert-to-utf8")) opt_convertToUTF8 = OFTrue; #endif diff --git a/dcmsr/apps/xml2dsr.cc b/dcmsr/apps/xml2dsr.cc index 9937499c..d6fae3e7 100644 --- a/dcmsr/apps/xml2dsr.cc +++ b/dcmsr/apps/xml2dsr.cc @@ -175,13 +175,22 @@ int main(int argc, char *argv[]) opt_readFlags |= DSRTypes::XF_useDcmsrNamespace; if (cmd.findOption("--generate-new-uids")) + { opt_generateUIDs = OFTrue; + opt_readFlags |= DSRTypes::XF_acceptEmptyStudySeriesInstanceUID; + } cmd.beginOptionBlock(); if (cmd.findOption("--dont-overwrite-uids")) + { + app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFFalse; + } if (cmd.findOption("--overwrite-uids")) + { + app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFTrue; + } cmd.endOptionBlock(); /* output options */ diff --git a/dcmsr/data/dsr2xml.xsd b/dcmsr/data/dsr2xml.xsd index 812814cf..b9cc3bd4 100644 --- a/dcmsr/data/dsr2xml.xsd +++ b/dcmsr/data/dsr2xml.xsd @@ -10,7 +10,7 @@ XML Schema for DCMTK tools dsr2xml and xml2dsr. - Copyright (C) 2003-2015, OFFIS e.V. + Copyright (C) 2003-2016, OFFIS e.V. All rights reserved. See COPYRIGHT file for details. @@ -25,6 +25,7 @@ + @@ -40,7 +41,7 @@ - + @@ -714,7 +715,15 @@ - + + + + + + + + + @@ -817,8 +826,12 @@ - + + + + + @@ -944,6 +957,12 @@ + + + + + + diff --git a/dcmsr/docs/dsr2html.man b/dcmsr/docs/dsr2html.man index bb49cfc4..809fbdcd 100644 --- a/dcmsr/docs/dsr2html.man +++ b/dcmsr/docs/dsr2html.man @@ -145,7 +145,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) \endverbatim \subsection output_options output options @@ -245,6 +246,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 \endverbatim \subsection character_encoding Character Encoding @@ -350,6 +353,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 2000-2015 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2000-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmsr/docs/dsr2xml.man b/dcmsr/docs/dsr2xml.man index c235c01e..83e8b0bd 100644 --- a/dcmsr/docs/dsr2xml.man +++ b/dcmsr/docs/dsr2xml.man @@ -141,7 +141,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) \endverbatim \subsection output_options output options @@ -211,6 +212,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 \endverbatim Please note that currently only mandatory and some optional attributes are @@ -333,6 +336,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 2000-2015 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2000-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmsr/docs/dsrdump.man b/dcmsr/docs/dsrdump.man index 6aa4d00f..b2f51edf 100644 --- a/dcmsr/docs/dsrdump.man +++ b/dcmsr/docs/dsrdump.man @@ -129,7 +129,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) \endverbatim \subsection output_options output options @@ -223,6 +224,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 \endverbatim \section logging LOGGING @@ -288,6 +291,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 2000-2015 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2000-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmsr/docs/xml2dsr.man b/dcmsr/docs/xml2dsr.man index e53bda30..87a44e9e 100644 --- a/dcmsr/docs/xml2dsr.man +++ b/dcmsr/docs/xml2dsr.man @@ -188,6 +188,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 \endverbatim Please note that currently only mandatory and some optional attributes are @@ -305,6 +307,6 @@ It is an error if no data dictionary can be loaded. \section copyright COPYRIGHT -Copyright (C) 2003-2015 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. +Copyright (C) 2003-2016 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany. */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h index a57f9159..8d1922e0 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h @@ -5,8 +5,8 @@ * * Header file for class CID100_QuantitativeDiagnosticImagingProcedures * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:37 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:40 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h index 8f143faf..40cc5353 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h @@ -5,8 +5,8 @@ * * Header file for class CID10013_CTAcquisitionType * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:00 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:04 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h index 6402909f..0465de62 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h @@ -5,8 +5,8 @@ * * Header file for class CID10033_CTReconstructionAlgorithm * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:02 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:06 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h index f32990e5..bbf48038 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h @@ -5,8 +5,8 @@ * * Header file for class CID11_RouteOfAdministration * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:32 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:35 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h index d7a2c452..5251e789 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h @@ -5,8 +5,8 @@ * * Header file for class CID244_Laterality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:38 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:42 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h index dc9f3835..39b4572d 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h @@ -5,8 +5,8 @@ * * Header file for class CID29_AcquisitionModality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:33 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:37 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h index bf39d929..166a5bf5 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h @@ -5,8 +5,8 @@ * * Header file for class CID4020_PETRadionuclide * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:40 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:44 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h index 72c4b033..ee49c1e9 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h @@ -5,8 +5,8 @@ * * Header file for class CID4021_PETRadiopharmaceutical * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:42 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:46 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h index 55b26ac2..dfdc4d9d 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h @@ -5,8 +5,8 @@ * * Header file for class CID4031_CommonAnatomicRegions * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:44 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:47 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h index da14b723..fb828ce2 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h @@ -5,8 +5,8 @@ * * Header file for class CID42_NumericValueQualifier * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:35 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:39 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h index 66ef9499..01757988 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h @@ -40,29 +40,29 @@ class DCMTK_CMR_EXPORT CID5000_Languages */ enum EnumType { - /// (eng,IETF4646,"English") + /// (eng,RFC5646,"English") English, - /// (en-CA,IETF4646","English (CA)") + /// (en-CA,RFC5646,"English (CA)") English_CA, - /// (en-GB,IETF4646","English (GB)") + /// (en-GB,RFC5646,"English (GB)") English_GB, - /// (en-US,IETF4646","English (US)") + /// (en-US,RFC5646,"English (US)") English_US, - /// (fra,IETF4646","French") + /// (fra,RFC5646,"French") French, - /// (fr-CA,IETF4646","French (CA)") + /// (fr-CA,RFC5646,"French (CA)") French_CA, - /// (fr-CH,IETF4646","French (CH)") + /// (fr-CH,RFC5646,"French (CH)") French_CH, - /// (fr-FR,IETF4646","French (FR)") + /// (fr-FR,RFC5646,"French (FR)") French_FR, - /// (deu,IETF4646","German") + /// (deu,RFC5646,"German") German, - /// (de-AT,IETF4646","German (AT)") + /// (de-AT,RFC5646,"German (AT)") German_AT, - /// (de-CH,IETF4646","German (CH)") + /// (de-CH,RFC5646,"German (CH)") German_CH, - /// (de-DE,IETF4646","German (DE)") + /// (de-DE,RFC5646,"German (DE)") German_DE }; diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h index 911538be..39679521 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h @@ -5,8 +5,8 @@ * * Header file for class CID6147_ResponseCriteria * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:45 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:49 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h index 04867c6b..f89d539c 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h @@ -5,8 +5,8 @@ * * Header file for class CID7021_MeasurementReportDocumentTitles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:47 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:52 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h index 95ffa0c7..1200cd9c 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h @@ -5,8 +5,8 @@ * * Header file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:49 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:54 by J. Riesmeier * */ @@ -28,7 +28,7 @@ /** Implementation of DCMR Context Group: * CID 7181 - Abstract Multi-dimensional Image Model Component Units. - * (type: extensible, version: 20141110) + * (type: extensible, version: 20161106) */ class DCMTK_CMR_EXPORT CID7181_AbstractMultiDimensionalImageModelComponentUnits : public DSRContextGroup @@ -80,6 +80,8 @@ class DCMTK_CMR_EXPORT CID7181_AbstractMultiDimensionalImageModelComponentUnits StandardizedUptakeValueBodyWeight, /// (g/ml{SUVlbm},UCUM,"Standardized Uptake Value lean body mass (James)"), included from CID 85 StandardizedUptakeValueLeanBodyMassJames, + /// (g/ml{SUVlbm(James128)},UCUM,"Standardized Uptake Value lean body mass (James 128 multiplier)"), included from CID 85 + StandardizedUptakeValueLeanBodyMassJames128Multiplier, /// (g/ml{SUVlbm(Janma)},UCUM,"Standardized Uptake Value lean body mass (Janma)"), included from CID 85 StandardizedUptakeValueLeanBodyMassJanma, /// (cm2/ml{SUVbsa},UCUM,"Standardized Uptake Value body surface area"), included from CID 85 @@ -118,6 +120,8 @@ class DCMTK_CMR_EXPORT CID7181_AbstractMultiDimensionalImageModelComponentUnits HounsfieldUnit, /// ([arb'U],UCUM,"arbitrary unit") ArbitraryUnit, + /// (ppm,UCUM,"ppm") + Ppm, /// (cm/s,UCUM,"centimeter/second") CentimeterPerSecond, /// (mm/s,UCUM,"millimeter/second") diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h index 6b3e3a55..fd2ccb44 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h @@ -5,8 +5,8 @@ * * Header file for class CID7445_DeviceParticipatingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:51 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:55 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h index 7e937d03..73b093f5 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h @@ -5,8 +5,8 @@ * * Header file for class CID7452_OrganizationalRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:53 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:57 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h index c259b373..c9f4ec12 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h @@ -5,8 +5,8 @@ * * Header file for class CID7453_PerformingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:55 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:59 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h index df4c815b..19167b94 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h @@ -5,8 +5,8 @@ * * Header file for class CID7464_GeneralRegionOfInterestMeasurementModifiers * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:57 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:01 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h index dd60c968..6edff85e 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h @@ -5,8 +5,8 @@ * * Header file for class CID7469_GenericIntensityAndSizeMeasurements * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:59 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:03 by J. Riesmeier * */ @@ -214,8 +214,12 @@ class DCMTK_CMR_EXPORT CID7469_GenericIntensityAndSizeMeasurements R1, /// (126394,DCM,"R2"), included from CID 7180 R2, + /// (126395,DCM,"R2*"), included from CID 7180 + R2Star, /// (113098,DCM,"Magnetization Transfer Ratio"), included from CID 7180 MagnetizationTransferRatio, + /// (126396,DCM,"Magnetic Susceptibility"), included from CID 7180 + MagneticSusceptibility, /// (126312,DCM,"Ktrans"), included from CID 4107 Ktrans, /// (126313,DCM,"kep"), included from CID 4107 @@ -240,6 +244,8 @@ class DCMTK_CMR_EXPORT CID7469_GenericIntensityAndSizeMeasurements TimeToPeak, /// (126392,DCM,"Oxygen Extraction Fraction"), included from CID 4108 OxygenExtractionFraction, + /// (113084,DCM,"Tmax"), included from CID 4108 + Tmax, /// (126320,DCM,"IAUC"), included from CID 4109 IAUC, /// (126321,DCM,"IAUC60"), included from CID 4109 @@ -276,6 +282,8 @@ class DCMTK_CMR_EXPORT CID7469_GenericIntensityAndSizeMeasurements SUVbw, /// (126402,DCM,"SUVlbm"), included from CID 7180 SUVlbm, + /// (126406,DCM,"SUVlbm(James128)"), included from CID 7180 + SUVlbmJames128, /// (126405,DCM,"SUVlbm(Janma)"), included from CID 7180 SUVlbmJanma, /// (126403,DCM,"SUVbsa"), included from CID 7180 diff --git a/dcmsr/include/dcmtk/dcmsr/codes/dcm.h b/dcmsr/include/dcmtk/dcmsr/codes/dcm.h index 960c0df3..f3fbea82 100644 --- a/dcmsr/include/dcmtk/dcmsr/codes/dcm.h +++ b/dcmsr/include/dcmtk/dcmsr/codes/dcm.h @@ -5,8 +5,8 @@ * * Header file with DICOM Code Definitions (Coding Scheme "DCM", Version "01") * - * Generated automatically from DICOM PS 3.16-2016c - * File created on 2016-06-13 09:53:55 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:33:01 by J. Riesmeier * */ @@ -33,10 +33,10 @@ * code definitions * *--------------------*/ -// total number of codes: 3400 +// total number of codes: 3511 // - retired: 143 // - no name: 27 -// - not unique: 14 +// - not unique: 15 // The basic scheme for creating the names is as follows: // 'CODE_' + + ['_RETIRED'] + '_' + @@ -1721,6 +1721,7 @@ #define CODE_DCM_CholineCreatineRatio DSRBasicCodedEntry("113081", "DCM", "Choline/Creatine Ratio") #define CODE_DCM_NAcetylaspartateCreatineRatio DSRBasicCodedEntry("113082", "DCM", "N-acetylaspartate /Creatine Ratio") #define CODE_DCM_NAcetylaspartateCholineRatio DSRBasicCodedEntry("113083", "DCM", "N-acetylaspartate /Choline Ratio") +#define CODE_DCM_Tmax DSRBasicCodedEntry("113084", "DCM", "Tmax") #define CODE_DCM_SpatialResampling DSRBasicCodedEntry("113085", "DCM", "Spatial resampling") #define CODE_DCM_EdgeEnhancement DSRBasicCodedEntry("113086", "DCM", "Edge enhancement") #define CODE_DCM_Smoothing DSRBasicCodedEntry("113087", "DCM", "Smoothing") @@ -3103,6 +3104,40 @@ #define CODE_DCM_LeftVentricleMassByMMode_adjustedByHeight DSRBasicCodedEntry("125271", "DCM", "Left Ventricle Mass by M-mode - adjusted by Height") #define CODE_DCM_LeftVentricleMassByTruncatedEllipse_adjustedByHeight DSRBasicCodedEntry("125272", "DCM", "Left Ventricle Mass by Truncated Ellipse - adjusted by Height") #define CODE_DCM_LeftVentricleMassByAreaLength_adjustedByHeight DSRBasicCodedEntry("125273", "DCM", "Left Ventricle Mass by Area Length - adjusted by Height") +#define CODE_DCM_PreCoordinatedMeasurements DSRBasicCodedEntry("125301", "DCM", "Pre-coordinated Measurements") +#define CODE_DCM_PostCoordinatedMeasurements DSRBasicCodedEntry("125302", "DCM", "Post-coordinated Measurements") +#define CODE_DCM_AdhocMeasurements DSRBasicCodedEntry("125303", "DCM", "Adhoc Measurements") +#define CODE_DCM_UntrackableMeasurement DSRBasicCodedEntry("125304", "DCM", "Untrackable Measurement") +#define CODE_DCM_FindingObservationType DSRBasicCodedEntry("125305", "DCM", "Finding Observation Type") +#define CODE_DCM_MeasurementType DSRBasicCodedEntry("125306", "DCM", "Measurement Type") +#define CODE_DCM_MeasuredProperty DSRBasicCodedEntry("125307", "DCM", "Measured Property") +#define CODE_DCM_MeasurementDivisor DSRBasicCodedEntry("125308", "DCM", "Measurement Divisor") +#define CODE_DCM_ShortLabel DSRBasicCodedEntry("125309", "DCM", "Short Label") +#define CODE_DCM_StagedMeasurements DSRBasicCodedEntry("125310", "DCM", "Staged Measurements") +#define CODE_DCM_StructureOfTheFindingSite DSRBasicCodedEntry("125311", "DCM", "Structure of the Finding Site") +#define CODE_DCM_BehaviorOfTheFindingSite DSRBasicCodedEntry("125312", "DCM", "Behavior of the Finding Site") +#define CODE_DCM_Indexed DSRBasicCodedEntry("125313", "DCM", "Indexed") +#define CODE_DCM_FractionalChange DSRBasicCodedEntry("125314", "DCM", "Fractional Change") +#define CODE_DCM_Calculated DSRBasicCodedEntry("125315", "DCM", "Calculated") +#define CODE_DCM_DirectlyMeasured DSRBasicCodedEntry("125316", "DCM", "Directly measured") +#define CODE_DCM_RightVentricleOutflowTract_Distal DSRBasicCodedEntry("125317", "DCM", "Right Ventricle Outflow Tract, Distal") +#define CODE_DCM_RightVentricleOutflowTract_Proximal DSRBasicCodedEntry("125318", "DCM", "Right Ventricle Outflow Tract, Proximal") +#define CODE_DCM_RightVentricleAnteriorWall DSRBasicCodedEntry("125319", "DCM", "Right Ventricle Anterior Wall") +#define CODE_DCM_ElectromechanicalDelay DSRBasicCodedEntry("125320", "DCM", "Electromechanical Delay") +#define CODE_DCM_PreEjectionPeriod DSRBasicCodedEntry("125321", "DCM", "Pre-ejection Period") +#define CODE_DCM_AtrialDiastolicFilling_DWave DSRBasicCodedEntry("125322", "DCM", "Atrial Diastolic Filling (D-wave)") +#define CODE_DCM_ARWave DSRBasicCodedEntry("125323", "DCM", "AR-wave") +#define CODE_DCM_FullCardiacCycle DSRBasicCodedEntry("125324", "DCM", "Full Cardiac Cycle") +#define CODE_DCM_DyssynchronyIndex DSRBasicCodedEntry("125325", "DCM", "Dyssynchrony Index") +#define CODE_DCM_EffectiveOrificeArea DSRBasicCodedEntry("125326", "DCM", "Effective Orifice Area") +#define CODE_DCM_ExcursionDistance DSRBasicCodedEntry("125327", "DCM", "Excursion Distance") +#define CODE_DCM_MaximumOrificeArea DSRBasicCodedEntry("125328", "DCM", "Maximum Orifice Area") +#define CODE_DCM_PeakBloodPressure DSRBasicCodedEntry("125329", "DCM", "Peak Blood Pressure") +#define CODE_DCM_PeakTissueVelocity DSRBasicCodedEntry("125330", "DCM", "Peak Tissue Velocity") +#define CODE_DCM_PISARadius DSRBasicCodedEntry("125331", "DCM", "PISA Radius") +#define CODE_DCM_RegurgitationJetArea DSRBasicCodedEntry("125332", "DCM", "Regurgitation Jet Area") +#define CODE_DCM_RegurgitationJetWidth DSRBasicCodedEntry("125333", "DCM", "Regurgitation Jet Width") +#define CODE_DCM_VenaContractaWidth DSRBasicCodedEntry("125334", "DCM", "Vena Contracta Width") #define CODE_DCM_CARDIOsphere DSRBasicCodedEntry("125901", "DCM", "CARDIOsphere") #define CODE_DCM_Echovist DSRBasicCodedEntry("125902", "DCM", "Echovist") #define CODE_DCM_Imagify DSRBasicCodedEntry("125903", "DCM", "Imagify") @@ -3206,17 +3241,21 @@ #define CODE_DCM_OxygenExtractionFraction DSRBasicCodedEntry("126392", "DCM", "Oxygen Extraction Fraction") #define CODE_DCM_R1 DSRBasicCodedEntry("126393", "DCM", "R1") #define CODE_DCM_R2 DSRBasicCodedEntry("126394", "DCM", "R2") +#define CODE_DCM_R2Star DSRBasicCodedEntry("126395", "DCM", "R2*") +#define CODE_DCM_MagneticSusceptibility DSRBasicCodedEntry("126396", "DCM", "Magnetic Susceptibility") #define CODE_DCM_StandardizedUptakeValue DSRBasicCodedEntry("126400", "DCM", "Standardized Uptake Value") #define CODE_DCM_SUVbw DSRBasicCodedEntry("126401", "DCM", "SUVbw") #define CODE_DCM_SUVlbm DSRBasicCodedEntry("126402", "DCM", "SUVlbm") #define CODE_DCM_SUVbsa DSRBasicCodedEntry("126403", "DCM", "SUVbsa") #define CODE_DCM_SUVibw DSRBasicCodedEntry("126404", "DCM", "SUVibw") #define CODE_DCM_SUVlbmJanma DSRBasicCodedEntry("126405", "DCM", "SUVlbm(Janma)") +#define CODE_DCM_SUVlbmJames128 DSRBasicCodedEntry("126406", "DCM", "SUVlbm(James128)") #define CODE_DCM_SUVBodyWeightCalculationMethod DSRBasicCodedEntry("126410", "DCM", "SUV body weight calculation method") #define CODE_DCM_SUVLeanBodyMassCalculationMethod DSRBasicCodedEntry("126411", "DCM", "SUV lean body mass calculation method") #define CODE_DCM_SUVBodySurfaceAreaCalculationMethod DSRBasicCodedEntry("126412", "DCM", "SUV body surface area calculation method") #define CODE_DCM_SUVIdealBodyWeightCalculationMethod DSRBasicCodedEntry("126413", "DCM", "SUV ideal body weight calculation method") #define CODE_DCM_SUVLeanBodyMassCalculationJanmahasatianMethod DSRBasicCodedEntry("126414", "DCM", "SUV lean body mass calculation Janmahasatian method") +#define CODE_DCM_SUVLeanBodyMassCalculationMethodUsing128Multiplier DSRBasicCodedEntry("126415", "DCM", "SUV lean body mass calculation method using 128 multiplier") #define CODE_DCM_PittsburghCompoundB_C11 DSRBasicCodedEntry("126500", "DCM", "Pittsburgh compound B C^11^") #define CODE_DCM_Florbetaben_F18 DSRBasicCodedEntry("126501", "DCM", "Florbetaben F^18^") #define CODE_DCM_T807_F18 DSRBasicCodedEntry("126502", "DCM", "T807 F^18^") @@ -3447,5 +3486,77 @@ #define CODE_DCM_VascularImagingSpecialty DSRBasicCodedEntry("128017", "DCM", "Vascular Imaging Specialty") #define CODE_DCM_FWPByGA_Campbell_1991 DSRBasicCodedEntry("128040", "DCM", "FWP by GA, Campbell, 1991") #define CODE_DCM_FWPByGA_Hadlock_1991 DSRBasicCodedEntry("128041", "DCM", "FWP by GA, Hadlock, 1991") +#define CODE_DCM_PlaneThroughSuperiorExtent DSRBasicCodedEntry("128120", "DCM", "Plane through Superior Extent") +#define CODE_DCM_PlaneThroughInferiorExtent DSRBasicCodedEntry("128121", "DCM", "Plane through Inferior Extent") +#define CODE_DCM_PlaneThroughProximalExtent DSRBasicCodedEntry("128122", "DCM", "Plane through Proximal Extent") +#define CODE_DCM_PlaneThroughDistalExtent DSRBasicCodedEntry("128123", "DCM", "Plane through Distal Extent") +#define CODE_DCM_PlaneThroughMedialExtent DSRBasicCodedEntry("128124", "DCM", "Plane through Medial Extent") +#define CODE_DCM_PlaneThroughLateralExtent DSRBasicCodedEntry("128125", "DCM", "Plane through Lateral Extent") +#define CODE_DCM_PlaneThroughLeftmostExtent DSRBasicCodedEntry("128126", "DCM", "Plane through Leftmost Extent") +#define CODE_DCM_PlaneThroughRightmostExtent DSRBasicCodedEntry("128127", "DCM", "Plane through Rightmost Extent") +#define CODE_DCM_PlaneThroughAnteriorExtent DSRBasicCodedEntry("128128", "DCM", "Plane through Anterior Extent") +#define CODE_DCM_PlaneThroughPosteriorExtent DSRBasicCodedEntry("128129", "DCM", "Plane through Posterior Extent") +#define CODE_DCM_PlaneThroughCenter DSRBasicCodedEntry("128130", "DCM", "Plane through Center") +#define CODE_DCM_GeometricCenterpoint DSRBasicCodedEntry("128137", "DCM", "Geometric Centerpoint") +#define CODE_DCM_CenterOfMass DSRBasicCodedEntry("128138", "DCM", "Center of Mass") +#define CODE_DCM_ImpairedRenalFunction DSRBasicCodedEntry("128144", "DCM", "Impaired Renal Function") +#define CODE_DCM_LaserCrossHairs DSRBasicCodedEntry("128151", "DCM", "Laser Cross-hairs") +#define CODE_DCM_AcquiredVolume DSRBasicCodedEntry("128160", "DCM", "Acquired Volume") +#define CODE_DCM_AbdominalRadiology DSRBasicCodedEntry("128170", "DCM", "Abdominal Radiology") +#define CODE_DCM_BiomedicalEngineering DSRBasicCodedEntry("128171", "DCM", "Biomedical Engineering") +#define CODE_DCM_CardiovascularRadiology DSRBasicCodedEntry("128172", "DCM", "Cardiovascular Radiology") +#define CODE_DCM_InformationTechnology DSRBasicCodedEntry("128173", "DCM", "Information Technology") +#define CODE_DCM_MedicalPhysics DSRBasicCodedEntry("128174", "DCM", "Medical Physics") +#define CODE_DCM_MusculoskeletalRadiology DSRBasicCodedEntry("128175", "DCM", "Musculoskeletal Radiology") +#define CODE_DCM_PediatricRadiology DSRBasicCodedEntry("128177", "DCM", "Pediatric Radiology") +#define CODE_DCM_ThoracicRadiology DSRBasicCodedEntry("128179", "DCM", "Thoracic Radiology") +#define CODE_DCM_ForRTWorkflow DSRBasicCodedEntry("128180", "DCM", "For RT Workflow") +#define CODE_DCM_DiagnosticSourceImages DSRBasicCodedEntry("128181", "DCM", "Diagnostic Source Images") +#define CODE_DCM_SegmentationResult DSRBasicCodedEntry("128182", "DCM", "Segmentation Result") +#define CODE_DCM_RegistrationResult DSRBasicCodedEntry("128183", "DCM", "Registration Result") +#define CODE_DCM_PrePlanningResult DSRBasicCodedEntry("128184", "DCM", "Pre-Planning Result") +#define CODE_DCM_RTPrescriptionResult DSRBasicCodedEntry("128185", "DCM", "RT Prescription Result") +#define CODE_DCM_DoseCalculationImageSeries DSRBasicCodedEntry("128186", "DCM", "Dose Calculation Image Series") +#define CODE_DCM_CoordinateAlignmentImageSeries DSRBasicCodedEntry("128187", "DCM", "Coordinate Alignment Image Series") +#define CODE_DCM_RTTreatmentSimulationResult DSRBasicCodedEntry("128188", "DCM", "RT Treatment Simulation Result") +#define CODE_DCM_RTPlanningResult DSRBasicCodedEntry("128189", "DCM", "RT Planning Result") +#define CODE_DCM_DosimetricResult DSRBasicCodedEntry("128190", "DCM", "Dosimetric Result") +#define CODE_DCM_PatientSetupVerificationResult DSRBasicCodedEntry("128191", "DCM", "Patient Setup Verification Result") +#define CODE_DCM_RTTreatmentSessionResult DSRBasicCodedEntry("128192", "DCM", "RT Treatment Session Result") +#define CODE_DCM_RTTreatmentCourseSummary DSRBasicCodedEntry("128193", "DCM", "RT Treatment Course Summary") +#define CODE_DCM_RTTreatmentQAResult DSRBasicCodedEntry("128194", "DCM", "RT Treatment QA Result") +#define CODE_DCM_ForDiagnosis DSRBasicCodedEntry("128195", "DCM", "For Diagnosis") +#define CODE_DCM_ForSegmentation DSRBasicCodedEntry("128196", "DCM", "For Segmentation") +#define CODE_DCM_ForRTPrescription DSRBasicCodedEntry("128197", "DCM", "For RT Prescription") +#define CODE_DCM_ForRTTreatmentPlanning DSRBasicCodedEntry("128198", "DCM", "For RT Treatment Planning") +#define CODE_DCM_ForPlanComparison DSRBasicCodedEntry("128199", "DCM", "For Plan Comparison") +#define CODE_DCM_ForRTPlanSummation DSRBasicCodedEntry("128200", "DCM", "For RT Plan Summation") +#define CODE_DCM_ForPhysicianReview DSRBasicCodedEntry("128201", "DCM", "For Physician Review") +#define CODE_DCM_ForPhysicistReview DSRBasicCodedEntry("128202", "DCM", "For Physicist Review") +#define CODE_DCM_ForTumorBoard DSRBasicCodedEntry("128203", "DCM", "For Tumor Board") +#define CODE_DCM_ForPlanQualityAssurance DSRBasicCodedEntry("128204", "DCM", "For Plan Quality Assurance") +#define CODE_DCM_ForMachineQualityAssurance DSRBasicCodedEntry("128205", "DCM", "For Machine Quality Assurance") +#define CODE_DCM_ForPatientSetupVerification DSRBasicCodedEntry("128206", "DCM", "For Patient Setup Verification") +#define CODE_DCM_ForClinicalTrialSubmission DSRBasicCodedEntry("128207", "DCM", "For Clinical Trial Submission") +#define CODE_DCM_ForTumorRegistry DSRBasicCodedEntry("128208", "DCM", "For Tumor Registry") +#define CODE_DCM_RTWorkflowInputUsed DSRBasicCodedEntry("128209", "DCM", "RT Workflow Input Used") +#define CODE_DCM_RTPrescriptionInputUsed DSRBasicCodedEntry("128210", "DCM", "RT Prescription Input Used") +#define CODE_DCM_RTTreatmentPlanningInputUsed DSRBasicCodedEntry("128211", "DCM", "RT Treatment Planning Input Used") +#define CODE_DCM_RTPlanSummationInputUsed DSRBasicCodedEntry("128212", "DCM", "RT Plan Summation Input Used") +#define CODE_DCM_PhysicianReviewInputUsed DSRBasicCodedEntry("128213", "DCM", "Physician Review Input Used") +#define CODE_DCM_PhysicistReviewInputUsed DSRBasicCodedEntry("128214", "DCM", "Physicist Review Input Used") +#define CODE_DCM_PlanQualityAssuranceInputUsed DSRBasicCodedEntry("128215", "DCM", "Plan Quality Assurance Input Used") +#define CODE_DCM_MachineQualityAssuranceInputUsed DSRBasicCodedEntry("128216", "DCM", "Machine Quality Assurance Input Used") +#define CODE_DCM_PatientSetupVerificationInputUsed DSRBasicCodedEntry("128217", "DCM", "Patient Setup Verification Input Used") +#define CODE_DCM_DiagnosisInputUsed DSRBasicCodedEntry("128218", "DCM", "Diagnosis Input Used") +#define CODE_DCM_ContouringInputUsed DSRBasicCodedEntry("128219", "DCM", "Contouring Input Used") +#define CODE_DCM_PlanComparisonInputUsed DSRBasicCodedEntry("128220", "DCM", "Plan Comparison Input Used") +#define CODE_DCM_TumorBoardInputUsed DSRBasicCodedEntry("128221", "DCM", "Tumor Board Input Used") +#define CODE_DCM_TumorRegistryInputUsed DSRBasicCodedEntry("128222", "DCM", "Tumor Registry Input Used") +#define CODE_DCM_ClinicalTrialSubmissionInputUsed DSRBasicCodedEntry("128223", "DCM", "Clinical Trial Submission Input Used") +#define CODE_DCM_SourceMeasurement DSRBasicCodedEntry("128224", "DCM", "Source measurement") +#define CODE_DCM_SourceReport DSRBasicCodedEntry("128225", "DCM", "Source report") +#define CODE_DCM_SourceRawData DSRBasicCodedEntry("128226", "DCM", "Source raw data") +#define CODE_DCM_PulseSequenceName DSRBasicCodedEntry("128230", "DCM", "Pulse Sequence Name") #endif diff --git a/dcmsr/include/dcmtk/dcmsr/codes/ncit.h b/dcmsr/include/dcmtk/dcmsr/codes/ncit.h index c917a164..e6c9fc6c 100644 --- a/dcmsr/include/dcmtk/dcmsr/codes/ncit.h +++ b/dcmsr/include/dcmtk/dcmsr/codes/ncit.h @@ -5,8 +5,8 @@ * * Header file with NCIt Code Definitions (Coding Scheme "NCIt") * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:08:01 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:29:26 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/codes/umls.h b/dcmsr/include/dcmtk/dcmsr/codes/umls.h index b7ef28e7..99e02292 100644 --- a/dcmsr/include/dcmtk/dcmsr/codes/umls.h +++ b/dcmsr/include/dcmtk/dcmsr/codes/umls.h @@ -5,8 +5,8 @@ * * Header file with UMLS Code Definitions (Coding Scheme "UMLS") * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:08:00 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:29:25 by J. Riesmeier * */ @@ -33,7 +33,7 @@ * code definitions * *--------------------*/ -// total number of codes: 39 +// total number of codes: 40 // - retired: 0 // - no name: 0 // - not unique: 0 @@ -77,6 +77,7 @@ #define CODE_UMLS_Tyrosine3Octreotate_Ga68 DSRBasicCodedEntry("C1742831", "UMLS", "tyrosine-3-octreotate Ga^68^") #define CODE_UMLS_Fluoroestradiol_FES_F18 DSRBasicCodedEntry("C1831937", "UMLS", "Fluoroestradiol (FES) F^18^") #define CODE_UMLS_Sonographer DSRBasicCodedEntry("C1954848", "UMLS", "Sonographer") +#define CODE_UMLS_Neuroradiology DSRBasicCodedEntry("C2183225", "UMLS", "Neuroradiology") #define CODE_UMLS_InverseRatioVentilation DSRBasicCodedEntry("C2223982", "UMLS", "Inverse ratio ventilation") #define CODE_UMLS_RootMeanSquare DSRBasicCodedEntry("C2347976", "UMLS", "Root Mean Square") #define CODE_UMLS_TimePoint DSRBasicCodedEntry("C2348792", "UMLS", "Time Point") diff --git a/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h b/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h index 467dd386..a5a8f0aa 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h @@ -726,6 +726,10 @@ class DCMTK_DCMSR_EXPORT DSRCodedEntryValue OFString ContextUID; /// Mapping Resource (VR=CS, type 1C) OFString MappingResource; + /// Mapping Resource UID (VR=UI, type 3) + // - tbd: optional attribute not yet supported + /// Mapping Resource Name (VR=LO, type 3) + // - tbd: optional attribute not yet supported /// Context Group Version (VR=DT, type 1C) OFString ContextGroupVersion; /// Context Group Local Version (VR=DT, type 1C) diff --git a/dcmsr/include/dcmtk/dcmsr/dsrcsidl.h b/dcmsr/include/dcmtk/dcmsr/dsrcsidl.h index a2a631e4..f497ff1d 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrcsidl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrcsidl.h @@ -60,7 +60,7 @@ class DCMTK_DCMSR_EXPORT DSRCodingSchemeIdentificationList /** check whether list is empty ** @return OFTrue if list is empty, OFFalse otherwise */ - OFBool empty() const; + OFBool isEmpty() const; /** get number of items stored in the list ** @return number of items diff --git a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h index 3a0df65e..61f6a5a6 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h @@ -112,13 +112,13 @@ class DCMTK_DCMSR_EXPORT DSRDocument * If logging is enabled, the reason for any error might be obtained from the log output. * Also warning and debug messages are reported if the respective logger is enabled. ** @param dataset reference to DICOM dataset from which the document should be read - * @param flags optional flag used to customize the reading process (see DSRTypes::RF_xxx). - * E.g. RF_readDigitalSignatures indicates whether to read the digital - * signatures from the dataset or not. If set, the MACParametersSequence - * and the DigitalSignaturesSequence are read for the general document - * header (equivalent to top-level content item) and each content item - * of the document tree. - * If not removed manually (with DSRDocumentTree::removeSignatures()) + * @param flags optional flag used to customize the reading process (see + * DSRTypes::RF_xxx). E.g. DSRTypes::RF_readDigitalSignatures indicates + * whether to read the digital signatures from the dataset or not. If set, + * the MACParametersSequence and the DigitalSignaturesSequence are read for + * the general document header (equivalent to top-level content item) and + * each content item of the document tree. + * If not removed manually (with DSRDocumentTree::removeSignatures()), * the signatures are written back to the dataset when the write() method * is called. * Please note that the two signature sequences for any other sequence @@ -170,7 +170,7 @@ class DCMTK_DCMSR_EXPORT DSRDocument /** read SR document from XML file. * The format (Schema) of the XML document is expected to conform to the output format * of the writeXML() method. In addition, the document can be validated against an XML - * Schema by setting the flag XF_validateSchema. + * Schema by setting the flag DSRTypes::XF_validateSchema. * Digital signatures in the XML document are not yet supported. * Please note that the current document is also deleted if the parsing process fails. ** @param filename name of the file from which the XML document is read ("-" for stdin) @@ -205,7 +205,7 @@ class DCMTK_DCMSR_EXPORT DSRDocument // --- get/set misc attributes --- /** get the current SR document type - ** @return document type (might be DT_invalid if read from dataset) + ** @return document type (might be DSRTypes::DT_invalid if read from dataset) */ virtual E_DocumentType getDocumentType() const; @@ -250,19 +250,21 @@ class DCMTK_DCMSR_EXPORT DSRDocument /** get specific character set type. * If the type is unknown, the original DICOM defined term can be retrieved * with the method getSpecificCharacterSet(). - ** @return character set (might be CS_invalid/unknown if not supported) + ** @return character set type (might be DSRTypes::CS_invalid or DSRTypes::CS_unknown) */ virtual E_CharacterSet getSpecificCharacterSetType() const; /** set specific character set type. * The DICOM defined term (see member variable SpecificCharacterSet) is set accordingly. + ** @param characterSet specific character set to be set (use DSRTypes::CS_invalid to reset + * to the default value, which is "unspecified") ** @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition setSpecificCharacterSetType(const E_CharacterSet characterSet); /** get document preliminary flag. * @note Not applicable to Key Object Selection Documents. - ** @return preliminary flag (might be PF_invalid if not specified) + ** @return preliminary flag (might be DSRTypes::PF_invalid if not specified) */ virtual E_PreliminaryFlag getPreliminaryFlag() const; @@ -270,7 +272,8 @@ class DCMTK_DCMSR_EXPORT DSRDocument * According to the DICOM standard, the concept of "completeness" is independent of the * concept of "preliminary" or "final". Therefore, this flag can be specified separately. * @note Not applicable to Key Object Selection Documents. - ** @param flag preliminary flag to be set (use PF_invalid to omit this optional value) + ** @param flag preliminary flag to be set (use DSRTypes::PF_invalid to omit this optional + * value) ** @return status, EC_Normal if successful, an error code otherwise */ virtual OFCondition setPreliminaryFlag(const E_PreliminaryFlag flag); @@ -279,16 +282,22 @@ class DCMTK_DCMSR_EXPORT DSRDocument * According to the DICOM standard, this flag describes the estimated degree of completeness * of an SR Document. See DICOM standard for details. * @note Not applicable to Key Object Selection Documents. - ** @return completion flag (might be CF_invalid if read from dataset) + ** @return completion flag (might be DSRTypes::CF_invalid if read from dataset) */ virtual E_CompletionFlag getCompletionFlag() const; /** get document verification flag. * @note Not applicable to Key Object Selection Documents. - ** @return verification flag (might be VF_invalid if read from dataset) + ** @return verification flag (might be DSRTypes::VF_invalid if read from dataset) */ virtual E_VerificationFlag getVerificationFlag() const; + /** check whether there are one or more verifying observers. + * @note Not applicable to Key Object Selection Documents. + ** @return OFTrue if there is at least one verifying observer, OFFalse otherwise + */ + virtual OFBool hasVerifyingObservers() const; + /** get number of verifying observers. * A document can be verified more than once. The verification flag should be VERIFIED * if any verifying observer is specified. The details on the observer can be retrieved @@ -296,7 +305,7 @@ class DCMTK_DCMSR_EXPORT DSRDocument * @note Not applicable to Key Object Selection Documents. ** @return number of verifying observers (if any), 0 otherwise */ - virtual size_t getNumberOfVerifyingObservers(); + virtual size_t getNumberOfVerifyingObservers() const; /** get information about a verifying observer. * All reference variables are cleared before the information is retrieved, i.e. if an error @@ -480,6 +489,14 @@ class DCMTK_DCMSR_EXPORT DSRDocument virtual OFCondition getInstanceCreatorUID(OFString &value, const signed long pos = 0) const; + /** get timezone offset from UTC + ** @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + ** @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getTimezoneOffsetFromUTC(OFString &value, + const signed long pos = 0) const; + /** get patient's name ** @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -698,6 +715,16 @@ class DCMTK_DCMSR_EXPORT DSRDocument virtual OFCondition setCompletionFlagDescription(const OFString &value, const OFBool check = OFTrue); + /** set timezone offset from UTC + ** @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled. + * Please note that it is not checked whether the 'value' conforms + * to the requirements of a valid timezone offset (see DICOM PS3.3). + ** @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setTimezoneOffsetFromUTC(const OFString &value, + const OFBool check = OFTrue); + /** set patient's name ** @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (PN) and VM (1) if enabled @@ -1230,6 +1257,12 @@ class DCMTK_DCMSR_EXPORT DSRDocument DcmUniqueIdentifier InstanceCreatorUID; /// Coding Scheme Identification Sequence: (SQ, 1-n, 3) DSRCodingSchemeIdentificationList CodingSchemeIdentification; + /// Context Group Identification Sequence: (SQ, 1-n, 3) + // - tbd: optional attribute not yet supported + /// Mapping Resource Identification Sequence: (SQ, 1-n, 3) + // - tbd: optional attribute not yet supported + /// Timezone Offset from UTC: (SH, 1, 3) + DcmShortString TimezoneOffsetFromUTC; // --- General Study Module (M) --- @@ -1345,6 +1378,11 @@ class DCMTK_DCMSR_EXPORT DSRDocument /// Referenced Instance Sequence: (SQ, 1-n, 1C) DSRReferencedInstanceList ReferencedInstances; + // --- Timezone Module (M - for some IODs) --- + + // Timezone Offset from UTC: (SH, 1, 1) + // - see 'SOP Common Module' + // --- declaration of copy constructor and assignment operator --- DSRDocument(const DSRDocument &); diff --git a/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h b/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h index e5b76ae2..e21e576d 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrdoctr.h @@ -234,6 +234,21 @@ class DCMTK_DCMSR_EXPORT DSRDocumentTree */ void swap(DSRDocumentTree &tree); + /** print current SR document tree to specified output stream. + * This method is only needed to avoid compiler warnings regarding an "overloaded + * virtual function" hiding DSRDocumentSubTree::print() from the base class, which + * has different parameters than the public print() method of this class. + ** @param stream output stream + * @param flags flag used to customize the output (see DSRTypes::PF_xxx) + * @param posCounter pointer to position counter that should be used to initialize + * the counter for line indentation or numbering of nested + * content items + ** @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition print(STD_NAMESPACE ostream &stream, + const size_t flags, + const DSRPositionCounter *posCounter); + private: diff --git a/dcmsr/include/dcmtk/dcmsr/dsrposcn.h b/dcmsr/include/dcmtk/dcmsr/dsrposcn.h index a9942750..6a4fd46f 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrposcn.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrposcn.h @@ -73,6 +73,7 @@ class DCMTK_DCMSR_EXPORT DSRPositionCounter /** pre-increment operator. Increases the position on the current level by 1. * Also makes the position counter valid if it was invalid before. + ** @return reference to modified cursor (this object) */ inline DSRPositionCounter &operator++() { @@ -82,6 +83,7 @@ class DCMTK_DCMSR_EXPORT DSRPositionCounter /** pre-decrement operator. Decreases the position on the current level by 1. * This makes the position counter invalid if the position was 1 before. + ** @return reference to modified cursor (this object) */ inline DSRPositionCounter &operator--() { diff --git a/dcmsr/include/dcmtk/dcmsr/dsrrefin.h b/dcmsr/include/dcmtk/dcmsr/dsrrefin.h index 2191b939..fff87ef8 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrrefin.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrrefin.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2011-2015, OFFIS e.V. + * Copyright (C) 2011-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -60,7 +60,7 @@ class DCMTK_DCMSR_EXPORT DSRReferencedInstanceList /** check whether list is empty ** @return OFTrue if list is empty, OFFalse otherwise */ - OFBool empty() const; + OFBool isEmpty() const; /** get number of items stored in the list ** @return number of items diff --git a/dcmsr/include/dcmtk/dcmsr/dsrsaecc.h b/dcmsr/include/dcmtk/dcmsr/dsrsaecc.h new file mode 100644 index 00000000..903fbbb3 --- /dev/null +++ b/dcmsr/include/dcmtk/dcmsr/dsrsaecc.h @@ -0,0 +1,94 @@ +/* + * + * Copyright (C) 2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsr + * + * Author: Joerg Riesmeier + * + * Purpose: + * classes: DSRSimplifiedAdultEchoSRConstraintChecker + * + */ + + +#ifndef DSRSAECC_H +#define DSRSAECC_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/dcmsr/dsriodcc.h" + + +/*---------------------* + * class declaration * + *---------------------*/ + +/** Class for checking the relationship content constraints of the Simplified Adult Echo + * SR IOD. + * According to DICOM PS 3.3: "The document shall be constructed from TID 5300 + * (Simplified Echo Procedure Report) invoked at the root node." + */ +class DCMTK_DCMSR_EXPORT DSRSimplifiedAdultEchoSRConstraintChecker + : public DSRIODConstraintChecker +{ + + public: + + /** default constructor + */ + DSRSimplifiedAdultEchoSRConstraintChecker(); + + /** destructor + */ + virtual ~DSRSimplifiedAdultEchoSRConstraintChecker(); + + /** check whether by-reference relationships are allowed for this SR IOD + ** @return always returns OFFalse, i.e. by-reference relationships are not allowed + */ + virtual OFBool isByReferenceAllowed() const; + + /** check whether this SR IOD requires template support + ** @return always returns OFTrue, i.e. template support is required + */ + virtual OFBool isTemplateSupportRequired() const; + + /** get identifier and mapping resource of the root template (if any) + ** @param templateIdentifier identifier of the root template (might be empty) + * @param mappingResource mapping resource that defines the root template + * (might be empty) + ** @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRootTemplateIdentification(OFString &templateIdentifier, + OFString &mappingResource) const; + + /** get the associated document type of the SR IOD + ** @return document type (DSRTypes::DT_SimplifiedAdultEchoSR) + */ + virtual E_DocumentType getDocumentType() const; + + /** check whether specified content relationship is allowed for this IOD + ** @param sourceValueType value type of the source content item to be checked + * @param relationshipType type of relationship between source and target item + * @param targetValueType value type of the target content item to be checked + * @param byReference optional flag indicating whether the node/relationship + * should be added by-value (default) or by-reference + ** @return OFTrue if content relationship is allowed, OFFalse otherwise + */ + virtual OFBool checkContentRelationship(const E_ValueType sourceValueType, + const E_RelationshipType relationshipType, + const E_ValueType targetValueType, + const OFBool byReference = OFFalse) const; +}; + + +#endif diff --git a/dcmsr/include/dcmtk/dcmsr/dsrsc3vl.h b/dcmsr/include/dcmtk/dcmsr/dsrsc3vl.h index bba8e7fe..5c29f3a3 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrsc3vl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrsc3vl.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2010-2015, OFFIS e.V. + * Copyright (C) 2010-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -69,14 +69,14 @@ class DCMTK_DCMSR_EXPORT DSRSpatialCoordinates3DValue DSRSpatialCoordinates3DValue &operator=(const DSRSpatialCoordinates3DValue &coordinatesValue); /** clear all internal variables. - * Graphic type is set to GT3_invalid. Since an empty list of graphic data is invalid - * the spatial coordinates value becomes invalid afterwards. + * Graphic type is set to DSRTypes::GT3_invalid. Since an empty list of graphic data is + * invalid the spatial coordinates value becomes invalid afterwards. */ virtual void clear(); /** check whether the current spatial coordinates value is valid. - * The value is valid if the graphic type is not GT3_invalid and the graphic data as well - * as the referenced frame of reference UID are valid. See checkXXX() methods for + * The value is valid if the graphic type is not DSRTypes::GT3_invalid and the graphic data + * as well as the referenced frame of reference UID are valid. See checkXXX() methods for * details. ** @return OFTrue if reference value is valid, OFFalse otherwise */ @@ -162,7 +162,7 @@ class DCMTK_DCMSR_EXPORT DSRSpatialCoordinates3DValue /** get current graphic type. * The graphic type specifies the geometry of the coordinates stored in the graphic data * list. - ** @return graphic type (might be GT3_invalid) + ** @return graphic type (might be DSRTypes::GT3_invalid) */ inline DSRTypes::E_GraphicType3D getGraphicType() const { @@ -214,7 +214,7 @@ class DCMTK_DCMSR_EXPORT DSRSpatialCoordinates3DValue /** set current graphic type. * The graphic type specifies the geometry of the coordinates stored in the graphic data * list. - ** @param graphicType graphic type to be set (GT3_invalid is not allowed) + ** @param graphicType graphic type to be set (DSRTypes::GT3_invalid is not allowed) * @param check dummy parameter (currently not used) ** @return status, EC_Normal if successful, an error code otherwise */ diff --git a/dcmsr/include/dcmtk/dcmsr/dsrscovl.h b/dcmsr/include/dcmtk/dcmsr/dsrscovl.h index 1e9d852a..2ead4997 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrscovl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrscovl.h @@ -69,14 +69,14 @@ class DCMTK_DCMSR_EXPORT DSRSpatialCoordinatesValue DSRSpatialCoordinatesValue &operator=(const DSRSpatialCoordinatesValue &coordinatesValue); /** clear all internal variables. - * Graphic type is set to GT_invalid. Since an empty list of graphic data is invalid - * the spatial coordinates value becomes invalid afterwards. + * Graphic type is set to DSRTypes::GT_invalid. Since an empty list of graphic data is + * invalid the spatial coordinates value becomes invalid afterwards. */ virtual void clear(); /** check whether the current spatial coordinates value is valid. - * The value is valid if the graphic type is not GT_invalid and the graphic data is - * valid. See checkGraphicData() method for details. + * The value is valid if the graphic type is not DSRTypes::GT_invalid and the graphic data + * is valid. See checkGraphicData() method for details. ** @return OFTrue if reference value is valid, OFFalse otherwise */ virtual OFBool isValid() const; @@ -161,7 +161,7 @@ class DCMTK_DCMSR_EXPORT DSRSpatialCoordinatesValue /** get current graphic type. * The graphic type specifies the geometry of the coordinates stored in the graphic data * list. - ** @return graphic type (might be GT_invalid) + ** @return graphic type (might be DSRTypes::GT_invalid) */ inline DSRTypes::E_GraphicType getGraphicType() const { @@ -203,7 +203,7 @@ class DCMTK_DCMSR_EXPORT DSRSpatialCoordinatesValue /** set current graphic type. * The graphic type specifies the geometry of the coordinates stored in the graphic data * list. - ** @param graphicType graphic type to be set (GT_invalid is not allowed) + ** @param graphicType graphic type to be set (DSRTypes::GT_invalid is not allowed) * @param check dummy parameter (currently not used) ** @return status, EC_Normal if successful, an error code otherwise */ diff --git a/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h b/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h index 1d4d2f0e..bad5f0ac 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h @@ -59,7 +59,7 @@ class DCMTK_DCMSR_EXPORT DSRSOPInstanceReferenceList /** check whether list of references is empty ** @return OFTrue if list is empty, OFFalse otherwise */ - OFBool empty() const; + OFBool isEmpty() const; /** get number of instance stored in the list of references ** @return number of instances @@ -139,7 +139,7 @@ class DCMTK_DCMSR_EXPORT DSRSOPInstanceReferenceList const OFBool check = OFTrue); /** add item from specified DICOM dataset to the list of references. - * Internally an item representing the given dataset is inserted into the hierarchical + * Internally, an item representing the given dataset is inserted into the hierarchical * structure of studies, series and instances, if not already contained in the list. * In any case, the specified item is selected as the current one. ** @param dataset reference to DICOM dataset from which the relevant UIDs are retrieved diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtcovl.h b/dcmsr/include/dcmtk/dcmsr/dsrtcovl.h index c5c9639f..607ebf58 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrtcovl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrtcovl.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2000-2015, OFFIS e.V. + * Copyright (C) 2000-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -71,14 +71,14 @@ class DCMTK_DCMSR_EXPORT DSRTemporalCoordinatesValue DSRTemporalCoordinatesValue &operator=(const DSRTemporalCoordinatesValue &coordinatesValue); /** clear all internal variables. - * Temporal range type is set to TRT_invalid. Since an empty list of graphic data is - * invalid the temporal coordinates value becomes invalid afterwards. + * Temporal range type is set to DSRTypes::TRT_invalid. Since an empty list of graphic data + * is invalid the temporal coordinates value becomes invalid afterwards. */ virtual void clear(); /** check whether the current temporal coordinates value is valid. - * The value is valid if the temporal range type is not TRT_invalid and the other data - * is valid. See checkData() method for details. + * The value is valid if the temporal range type is not DSRTypes::TRT_invalid and the other + * data is valid. See checkData() method for details. ** @return OFTrue if reference value is valid, OFFalse otherwise */ virtual OFBool isValid() const; @@ -161,7 +161,7 @@ class DCMTK_DCMSR_EXPORT DSRTemporalCoordinatesValue /** get current temporal range type. * This value represents the type of temporal extent of the region of interest. - ** @return region type (might be TRT_invalid) + ** @return region type (might be DSRTypes::TRT_invalid) */ inline DSRTypes::E_TemporalRangeType getTemporalRangeType() const { @@ -170,7 +170,8 @@ class DCMTK_DCMSR_EXPORT DSRTemporalCoordinatesValue /** set current temporal range type. * This value represents the type of temporal extent of the region of interest. - ** @param temporalRangeType temporal range type to be set (TRT_invalid is not allowed) + ** @param temporalRangeType temporal range type to be set (DSRTypes::TRT_invalid is not + * allowed) * @param check dummy parameter (currently not used) ** @return status, EC_Normal if successful, an error code otherwise */ diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h index ed58b359..21e94468 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h @@ -29,6 +29,7 @@ #include "dcmtk/dcmdata/dcerror.h" #include "dcmtk/ofstd/oflist.h" +#include "dcmtk/ofstd/ofvector.h" /*---------------------* @@ -148,6 +149,32 @@ template class DSRListOfItems return result; } + /** get copy of all items (as a vector) + ** @param items reference to a variable where the result should be stored. + * (always cleared before items are added) + ** @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItems(OFVector &items) const + { + items.clear(); + if (!ItemList.empty()) + { + /* avoid re-allocations */ + items.reserve(ItemList.size()); + /* iterate over all list items */ + const OFLIST_TYPENAME OFListConstIterator(T) endPos = ItemList.end(); + OFLIST_TYPENAME OFListConstIterator(T) iterator = ItemList.begin(); + while (iterator != endPos) + { + /* and copy them to the passed vector */ + items.push_back(*iterator); + iterator++; + } + } + /* always return OK */ + return EC_Normal; + } + /** add item to the list ** @param item item to be added */ @@ -165,6 +192,20 @@ template class DSRListOfItems ItemList.push_back(item); } + /** add items to the list + ** @param items items to be added (stored as a vector) + */ + inline void addItems(const OFVector &items) + { + const OFTypename OFVector::const_iterator endPos = items.end(); + OFTypename OFVector::const_iterator iterator = items.begin(); + while (iterator != endPos) + { + ItemList.push_back(*iterator); + iterator++; + } + } + /** insert item at specified position to the list ** @param idx index of the item before the new one should be inserted (starting from 1) * @param item item to be inserted diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtypes.h b/dcmsr/include/dcmtk/dcmsr/dsrtypes.h index 5ba54ad1..f4c0d2ac 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrtypes.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrtypes.h @@ -244,7 +244,7 @@ class DCMTK_DCMSR_EXPORT DSRTypes // --- constant declarations --- - /** @name read() flags. + /** @name read() flags * These flags can be combined and passed to the read() methods. * The 'shortcut' flags can be used for common combinations. */ @@ -273,7 +273,7 @@ class DCMTK_DCMSR_EXPORT DSRTypes //@} - /** @name renderHTML() flags. + /** @name renderHTML() flags * These flags can be combined and passed to the renderHMTL() methods. * Please note that only the 'external' flags can be used from outside * this library. The 'shortcut' flags can be used for common combinations. @@ -354,7 +354,7 @@ class DCMTK_DCMSR_EXPORT DSRTypes //@} - /** @name read/writeXML() flags. + /** @name read/writeXML() flags * These flags can be combined and passed to the read/writeXML() methods. * The 'shortcut' flags can be used for common combinations. */ @@ -396,6 +396,9 @@ class DCMTK_DCMSR_EXPORT DSRTypes /// write: add comments with details at beginning/end of included template (might be useful for debugging purposes) static const size_t XF_addCommentsForIncludedTemplate; + /// read: accept empty Study/Series/SOP Instance UID attribute values (must be filled later) + static const size_t XF_acceptEmptyStudySeriesInstanceUID; + /// shortcut: combines all XF_xxxAsAttribute write flags (see above) static const size_t XF_encodeEverythingAsAttribute; //@} @@ -529,6 +532,8 @@ class DCMTK_DCMSR_EXPORT DSRTypes DT_ExtensibleSR, /// DICOM IOD: Acquisition Context SR DT_AcquisitionContextSR, + /// DICOM IOD: Simplified Adult Echo SR + DT_SimplifiedAdultEchoSR, /// internal type used to mark the last entry DT_last = DT_AcquisitionContextSR }; @@ -877,6 +882,12 @@ class DCMTK_DCMSR_EXPORT DSRTypes */ static OFBool requiresEnhancedEquipmentModule(const E_DocumentType documentType); + /** check whether SR document type requires Timezone Module + ** @param documentType SR document type to be checked + ** @return OFTrue if Timezone Module is required, OFFalse otherwise + */ + static OFBool requiresTimezoneModule(const E_DocumentType documentType); + /** convert relationship type to DICOM defined term ** @param relationshipType relationship type to be converted ** @return defined term if type is valid, empty string otherwise (never NULL) @@ -1095,7 +1106,6 @@ class DCMTK_DCMSR_EXPORT DSRTypes static const OFString ¤tDate(OFString &dateString); /** get current time in DICOM 'TM' format. (HHMMSS) - * The optional UTC notation (e.g. +0100) is currently not supported. ** @param timeString string used to store the current time * ('000000' if current time could not be retrieved) ** @return resulting character string (see 'timeString') @@ -1112,6 +1122,13 @@ class DCMTK_DCMSR_EXPORT DSRTypes */ static const OFString ¤tDateTime(OFString &dateTimeString); + /** get local timezone in DICOM format. (&ZZXX) + ** @param timezoneString string used to store the local timezone + * ('+0000' if timezone could not be retrieved) + ** @return resulting character string (see 'timezoneString') + */ + static const OFString &localTimezone(OFString &timezoneString); + /** convert DICOM date string to readable format. * The ISO format "YYYY-MM-DD" is used for the readable format. ** @param dicomDate date in DICOM DA format (YYYYMMDD) diff --git a/dcmsr/include/dcmtk/dcmsr/dsrxmld.h b/dcmsr/include/dcmtk/dcmsr/dsrxmld.h index 871e9098..29ddb4cc 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrxmld.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrxmld.h @@ -83,8 +83,8 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument // --- input and output --- /** read XML document from file. - * In order to enable the optional Schema validation the flag XF_validateSchema has - * to be set. + * In order to enable the optional Schema validation the flag DSRTypes::XF_validateSchema + * has to be set. ** @param filename name of the file from which the XML document is read * ("-" for stdin) * @param flags optional flag used to customize the reading process @@ -222,7 +222,7 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument * Additionally, by-reference relationships are also supported (either by attribute * "ref" being present or element named "reference"). ** @param cursor cursor pointing to the particular node - ** @return value type (incl. by-reference) if successful, VT_invalid/unknown otherwise + ** @return value type (incl. by-reference) if successful, DSRTypes::VT_invalid otherwise */ E_ValueType getValueTypeFromNode(const DSRXMLCursor &cursor) const; @@ -230,7 +230,8 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument * The relationship type is either stored in the element "relationship" or in the * attribute "relType". ** @param cursor cursor pointing to the particular node - ** @return relationship type if successful, RT_invalid/unknown otherwise + ** @return relationship type if successful, DSRTypes::RT_invalid or DSRTypes::RT_unknown + * otherwise */ E_RelationshipType getRelationshipTypeFromNode(const DSRXMLCursor &cursor) const; @@ -242,6 +243,13 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument */ void printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const; + /** print warning message for missing attribute + ** @param cursor cursor pointing to the relevant node + * @param name name of the XML attribute + */ + void printMissingAttributeWarning(const DSRXMLCursor &cursor, + const char *name) const; + /** print general node error message ** @param cursor cursor pointing to the unexpected node * @param result status used to print details on the error (no message if EC_Normal) @@ -268,11 +276,11 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument // --- static function --- - /** get the full path (incl. all predecessors) to the current node. - * Returns "" in case of an invalid 'cursor'. + /** get the full path (incl.\ all predecessors) to the current node ** @param cursor cursor pointing to the relevant node * @param stringValue reference to string object in which the result should be stored * @param omitCurrent flag indicating whether to omit the current node or not + ** @return resulting character string, set to "" in case of an invalid 'cursor' */ static OFString &getFullNodePath(const DSRXMLCursor &cursor, OFString &stringValue, diff --git a/dcmsr/libcmr/cid100.cc b/dcmsr/libcmr/cid100.cc index 7e899772..df1c08cc 100644 --- a/dcmsr/libcmr/cid100.cc +++ b/dcmsr/libcmr/cid100.cc @@ -5,8 +5,8 @@ * * Source file for class CID100_QuantitativeDiagnosticImagingProcedures * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:37 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:40 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid10013.cc b/dcmsr/libcmr/cid10013.cc index 39eec59a..0eb6bc87 100644 --- a/dcmsr/libcmr/cid10013.cc +++ b/dcmsr/libcmr/cid10013.cc @@ -5,8 +5,8 @@ * * Source file for class CID10013_CTAcquisitionType * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:00 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:04 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid10033.cc b/dcmsr/libcmr/cid10033.cc index 7ebbee8c..dcfe31ae 100644 --- a/dcmsr/libcmr/cid10033.cc +++ b/dcmsr/libcmr/cid10033.cc @@ -5,8 +5,8 @@ * * Source file for class CID10033_CTReconstructionAlgorithm * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:02 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:06 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid11.cc b/dcmsr/libcmr/cid11.cc index 0ea6597a..0f96372a 100644 --- a/dcmsr/libcmr/cid11.cc +++ b/dcmsr/libcmr/cid11.cc @@ -5,8 +5,8 @@ * * Source file for class CID11_RouteOfAdministration * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:32 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:35 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid244.cc b/dcmsr/libcmr/cid244.cc index f6affd9e..4a5750ba 100644 --- a/dcmsr/libcmr/cid244.cc +++ b/dcmsr/libcmr/cid244.cc @@ -5,8 +5,8 @@ * * Source file for class CID244_Laterality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:38 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:42 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid29.cc b/dcmsr/libcmr/cid29.cc index 770b2acd..882f894b 100644 --- a/dcmsr/libcmr/cid29.cc +++ b/dcmsr/libcmr/cid29.cc @@ -5,8 +5,8 @@ * * Source file for class CID29_AcquisitionModality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:33 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:37 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid4020.cc b/dcmsr/libcmr/cid4020.cc index e64f47d4..8d36f850 100644 --- a/dcmsr/libcmr/cid4020.cc +++ b/dcmsr/libcmr/cid4020.cc @@ -5,8 +5,8 @@ * * Source file for class CID4020_PETRadionuclide * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:40 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:44 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid4021.cc b/dcmsr/libcmr/cid4021.cc index a64408ee..e4350bbb 100644 --- a/dcmsr/libcmr/cid4021.cc +++ b/dcmsr/libcmr/cid4021.cc @@ -5,8 +5,8 @@ * * Source file for class CID4021_PETRadiopharmaceutical * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:42 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:46 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid4031.cc b/dcmsr/libcmr/cid4031.cc index 5e9dfee6..9fe12c09 100644 --- a/dcmsr/libcmr/cid4031.cc +++ b/dcmsr/libcmr/cid4031.cc @@ -5,8 +5,8 @@ * * Source file for class CID4031_CommonAnatomicRegions * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:44 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:47 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid42.cc b/dcmsr/libcmr/cid42.cc index 02c6ce3f..b1c21151 100644 --- a/dcmsr/libcmr/cid42.cc +++ b/dcmsr/libcmr/cid42.cc @@ -5,8 +5,8 @@ * * Source file for class CID42_NumericValueQualifier * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:35 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:39 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid5000.cc b/dcmsr/libcmr/cid5000.cc index 7921bb92..da64f582 100644 --- a/dcmsr/libcmr/cid5000.cc +++ b/dcmsr/libcmr/cid5000.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2015-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class CID5000_Languages @@ -147,19 +147,19 @@ CID5000_Languages::CodeList &CID5000_Languages::getCodes() { /* create a new code list (should never fail) */ Codes = new CodeList(); - /*Codes and initialize it by adding the coded entries */ - Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "IETF4646", "English"))); - Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "IETF4646", "English (CA)"))); - Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "IETF4646", "English (GB)"))); - Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "IETF4646", "English (US)"))); - Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "IETF4646", "French"))); - Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "IETF4646", "French (CA)"))); - Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "IETF4646", "French (CH)"))); - Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "IETF4646", "French (FR)"))); - Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "IETF4646", "German"))); - Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "IETF4646", "German (AT)"))); - Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "IETF4646", "German (CH)"))); - Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "IETF4646", "German (DE)"))); + /* and initialize it by adding the coded entries */ + Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "RFC5646", "English"))); + Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "RFC5646", "English (CA)"))); + Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "RFC5646", "English (GB)"))); + Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "RFC5646", "English (US)"))); + Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "RFC5646", "French"))); + Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "RFC5646", "French (CA)"))); + Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "RFC5646", "French (CH)"))); + Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "RFC5646", "French (FR)"))); + Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "RFC5646", "German"))); + Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "RFC5646", "German (AT)"))); + Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "RFC5646", "German (CH)"))); + Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "RFC5646", "German (DE)"))); } /* should never be NULL */ return *Codes; diff --git a/dcmsr/libcmr/cid6147.cc b/dcmsr/libcmr/cid6147.cc index 14cdec85..4b6bee93 100644 --- a/dcmsr/libcmr/cid6147.cc +++ b/dcmsr/libcmr/cid6147.cc @@ -5,8 +5,8 @@ * * Source file for class CID6147_ResponseCriteria * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:45 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:49 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7021.cc b/dcmsr/libcmr/cid7021.cc index 7680f033..607327c1 100644 --- a/dcmsr/libcmr/cid7021.cc +++ b/dcmsr/libcmr/cid7021.cc @@ -5,8 +5,8 @@ * * Source file for class CID7021_MeasurementReportDocumentTitles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:47 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:52 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7181.cc b/dcmsr/libcmr/cid7181.cc index baf67636..7378ee42 100644 --- a/dcmsr/libcmr/cid7181.cc +++ b/dcmsr/libcmr/cid7181.cc @@ -5,8 +5,8 @@ * * Source file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:49 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:54 by J. Riesmeier * */ @@ -18,7 +18,7 @@ // general information on CID 7181 (Abstract Multi-dimensional Image Model Component Units) #define CONTEXT_GROUP_NUMBER "7181" -#define CONTEXT_GROUP_VERSION "20141110" +#define CONTEXT_GROUP_VERSION "20161106" #define CONTEXT_GROUP_UID "1.2.840.10008.6.1.918" #define CONTEXT_GROUP_TYPE OFTrue /* extensible */ @@ -169,6 +169,7 @@ CID7181_AbstractMultiDimensionalImageModelComponentUnits::CodeList &CID7181_Abst Codes->insert(OFMake_pair(CubicMicrometer, DSRBasicCodedEntry("um3", "UCUM", "cubic micrometer"))); Codes->insert(OFMake_pair(StandardizedUptakeValueBodyWeight, DSRBasicCodedEntry("g/ml{SUVbw}", "UCUM", "Standardized Uptake Value body weight"))); Codes->insert(OFMake_pair(StandardizedUptakeValueLeanBodyMassJames, DSRBasicCodedEntry("g/ml{SUVlbm}", "UCUM", "Standardized Uptake Value lean body mass (James)"))); + Codes->insert(OFMake_pair(StandardizedUptakeValueLeanBodyMassJames128Multiplier, DSRBasicCodedEntry("g/ml{SUVlbm(James128)}", "UCUM", "Standardized Uptake Value lean body mass (James 128 multiplier)"))); Codes->insert(OFMake_pair(StandardizedUptakeValueLeanBodyMassJanma, DSRBasicCodedEntry("g/ml{SUVlbm(Janma)}", "UCUM", "Standardized Uptake Value lean body mass (Janma)"))); Codes->insert(OFMake_pair(StandardizedUptakeValueBodySurfaceArea, DSRBasicCodedEntry("cm2/ml{SUVbsa}", "UCUM", "Standardized Uptake Value body surface area"))); Codes->insert(OFMake_pair(StandardizedUptakeValueIdealBodyWeight, DSRBasicCodedEntry("g/ml{SUVibw}", "UCUM", "Standardized Uptake Value ideal body weight"))); @@ -188,6 +189,7 @@ CID7181_AbstractMultiDimensionalImageModelComponentUnits::CodeList &CID7181_Abst Codes->insert(OFMake_pair(Ratio, DSRBasicCodedEntry("{ratio}", "UCUM", "ratio"))); Codes->insert(OFMake_pair(HounsfieldUnit, DSRBasicCodedEntry("[hnsf'U]", "UCUM", "Hounsfield Unit"))); Codes->insert(OFMake_pair(ArbitraryUnit, DSRBasicCodedEntry("[arb'U]", "UCUM", "arbitrary unit"))); + Codes->insert(OFMake_pair(Ppm, DSRBasicCodedEntry("ppm", "UCUM", "ppm"))); Codes->insert(OFMake_pair(CentimeterPerSecond, DSRBasicCodedEntry("cm/s", "UCUM", "centimeter/second"))); Codes->insert(OFMake_pair(MillimeterPerSecond, DSRBasicCodedEntry("mm/s", "UCUM", "millimeter/second"))); Codes->insert(OFMake_pair(Decibel, DSRBasicCodedEntry("dB", "UCUM", "decibel"))); diff --git a/dcmsr/libcmr/cid7445.cc b/dcmsr/libcmr/cid7445.cc index 035cdb50..7d8ec9a1 100644 --- a/dcmsr/libcmr/cid7445.cc +++ b/dcmsr/libcmr/cid7445.cc @@ -5,8 +5,8 @@ * * Source file for class CID7445_DeviceParticipatingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:51 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:55 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7452.cc b/dcmsr/libcmr/cid7452.cc index a54cbfdc..e6ee43f6 100644 --- a/dcmsr/libcmr/cid7452.cc +++ b/dcmsr/libcmr/cid7452.cc @@ -5,8 +5,8 @@ * * Source file for class CID7452_OrganizationalRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:53 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:57 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7453.cc b/dcmsr/libcmr/cid7453.cc index 2d748744..dd1e7b47 100644 --- a/dcmsr/libcmr/cid7453.cc +++ b/dcmsr/libcmr/cid7453.cc @@ -5,8 +5,8 @@ * * Source file for class CID7453_PerformingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:55 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:58:59 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7464.cc b/dcmsr/libcmr/cid7464.cc index f0dd006f..47067f96 100644 --- a/dcmsr/libcmr/cid7464.cc +++ b/dcmsr/libcmr/cid7464.cc @@ -5,8 +5,8 @@ * * Source file for class CID7464_GeneralRegionOfInterestMeasurementModifiers * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:57 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:01 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7469.cc b/dcmsr/libcmr/cid7469.cc index e41b27cd..976f1229 100644 --- a/dcmsr/libcmr/cid7469.cc +++ b/dcmsr/libcmr/cid7469.cc @@ -5,8 +5,8 @@ * * Source file for class CID7469_GenericIntensityAndSizeMeasurements * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:59 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016e + * File created on 2016-11-23 13:59:03 by J. Riesmeier * */ @@ -236,7 +236,9 @@ CID7469_GenericIntensityAndSizeMeasurements::CodeList &CID7469_GenericIntensityA Codes->insert(OFMake_pair(FractionalOccupancySegmentation, DSRBasicCodedEntry("110855", "DCM", "Fractional Occupancy Segmentation"))); Codes->insert(OFMake_pair(R1, DSRBasicCodedEntry("126393", "DCM", "R1"))); Codes->insert(OFMake_pair(R2, DSRBasicCodedEntry("126394", "DCM", "R2"))); + Codes->insert(OFMake_pair(R2Star, DSRBasicCodedEntry("126395", "DCM", "R2*"))); Codes->insert(OFMake_pair(MagnetizationTransferRatio, DSRBasicCodedEntry("113098", "DCM", "Magnetization Transfer Ratio"))); + Codes->insert(OFMake_pair(MagneticSusceptibility, DSRBasicCodedEntry("126396", "DCM", "Magnetic Susceptibility"))); Codes->insert(OFMake_pair(Ktrans, DSRBasicCodedEntry("126312", "DCM", "Ktrans"))); Codes->insert(OFMake_pair(Kep, DSRBasicCodedEntry("126313", "DCM", "kep"))); Codes->insert(OFMake_pair(Ve, DSRBasicCodedEntry("126314", "DCM", "ve"))); @@ -249,6 +251,7 @@ CID7469_GenericIntensityAndSizeMeasurements::CodeList &CID7469_GenericIntensityA Codes->insert(OFMake_pair(MeanTransitTime, DSRBasicCodedEntry("113052", "DCM", "Mean Transit Time"))); Codes->insert(OFMake_pair(TimeToPeak, DSRBasicCodedEntry("113069", "DCM", "Time To Peak"))); Codes->insert(OFMake_pair(OxygenExtractionFraction, DSRBasicCodedEntry("126392", "DCM", "Oxygen Extraction Fraction"))); + Codes->insert(OFMake_pair(Tmax, DSRBasicCodedEntry("113084", "DCM", "Tmax"))); Codes->insert(OFMake_pair(IAUC, DSRBasicCodedEntry("126320", "DCM", "IAUC"))); Codes->insert(OFMake_pair(IAUC60, DSRBasicCodedEntry("126321", "DCM", "IAUC60"))); Codes->insert(OFMake_pair(IAUC90, DSRBasicCodedEntry("126322", "DCM", "IAUC90"))); @@ -267,6 +270,7 @@ CID7469_GenericIntensityAndSizeMeasurements::CodeList &CID7469_GenericIntensityA Codes->insert(OFMake_pair(StandardizedUptakeValue, DSRBasicCodedEntry("126400", "DCM", "Standardized Uptake Value"))); Codes->insert(OFMake_pair(SUVbw, DSRBasicCodedEntry("126401", "DCM", "SUVbw"))); Codes->insert(OFMake_pair(SUVlbm, DSRBasicCodedEntry("126402", "DCM", "SUVlbm"))); + Codes->insert(OFMake_pair(SUVlbmJames128, DSRBasicCodedEntry("126406", "DCM", "SUVlbm(James128)"))); Codes->insert(OFMake_pair(SUVlbmJanma, DSRBasicCodedEntry("126405", "DCM", "SUVlbm(Janma)"))); Codes->insert(OFMake_pair(SUVbsa, DSRBasicCodedEntry("126403", "DCM", "SUVbsa"))); Codes->insert(OFMake_pair(SUVibw, DSRBasicCodedEntry("126404", "DCM", "SUVibw"))); diff --git a/dcmsr/libcmr/tid1600.cc b/dcmsr/libcmr/tid1600.cc index 13baa0b7..1f2f68d3 100644 --- a/dcmsr/libcmr/tid1600.cc +++ b/dcmsr/libcmr/tid1600.cc @@ -647,7 +647,7 @@ OFCondition TID1600_ImageLibrary::addMagneticResonanceDescriptors(DSRDocumentSub if ((getStringValueFromDataset(dataset, DCM_PulseSequenceName, sequenceName).good() && !sequenceName.empty()) || (getStringValueFromDataset(dataset, DCM_SequenceName, sequenceName).good() && !sequenceName.empty())) { - CHECK_RESULT(tree.addContentItem(RT_hasAcqContext, VT_Text, DSRCodedEntryValue("110909", "DCM", "Pulse Sequence Name") /* wrong definition: will be fixed with CP-1578 */, check)); + CHECK_RESULT(tree.addContentItem(RT_hasAcqContext, VT_Text, CODE_DCM_PulseSequenceName, check)); CHECK_RESULT(tree.getCurrentContentItem().setStringValue(sequenceName, check)); CHECK_RESULT(tree.getCurrentContentItem().setAnnotationText("TID 1606 - Row 1")); } diff --git a/dcmsr/libsrc/CMakeLists.txt b/dcmsr/libsrc/CMakeLists.txt index 5c69202f..0304223b 100644 --- a/dcmsr/libsrc/CMakeLists.txt +++ b/dcmsr/libsrc/CMakeLists.txt @@ -1,5 +1,5 @@ # create library from source files -DCMTK_ADD_LIBRARY(dcmsr dsrcitem dsrcodtn dsrcodvl dsrcomtn dsrcomvl dsrcontn dsrcsidl dsrdattn dsrdncsr dsrdoc dsrdocst dsrdoctn dsrdoctr dsrdtitn dsrimgfr dsrimgse dsrimgtn dsrimgvl dsrnumtn dsrnumvl dsrpnmtn dsrposcn dsrrefin dsrreftn dsrscogr dsrsc3gr dsrscotn dsrsc3tn dsrscovl dsrsc3vl dsrsoprf dsrstrvl dsrtcodt dsrtcosp dsrtcotn dsrtcoto dsrtcovl dsrtextn dsrtimtn dsrtpltn dsrtree dsrtypes dsruidtn dsrwavch dsrwavtn dsrwavvl dsrxmlc dsrxmld dsriodcc dsrbascc dsrenhcc dsrcomcc dsrkeycc dsrmamcc dsrchecc dsrcolcc dsrprocc dsrxrdcc dsrspecc dsrmaccc dsrimpcc dsrc3dcc dsrrrdcc dsracqcc dsrctpl dsrrtpl dsrstpl dsrctxgr) +DCMTK_ADD_LIBRARY(dcmsr dsrcitem dsrcodtn dsrcodvl dsrcomtn dsrcomvl dsrcontn dsrcsidl dsrdattn dsrdncsr dsrdoc dsrdocst dsrdoctn dsrdoctr dsrdtitn dsrimgfr dsrimgse dsrimgtn dsrimgvl dsrnumtn dsrnumvl dsrpnmtn dsrposcn dsrrefin dsrreftn dsrscogr dsrsc3gr dsrscotn dsrsc3tn dsrscovl dsrsc3vl dsrsoprf dsrstrvl dsrtcodt dsrtcosp dsrtcotn dsrtcoto dsrtcovl dsrtextn dsrtimtn dsrtpltn dsrtree dsrtypes dsruidtn dsrwavch dsrwavtn dsrwavvl dsrxmlc dsrxmld dsriodcc dsrbascc dsrenhcc dsrcomcc dsrkeycc dsrmamcc dsrchecc dsrcolcc dsrprocc dsrxrdcc dsrspecc dsrmaccc dsrimpcc dsrc3dcc dsrrrdcc dsracqcc dsrsaecc dsrctpl dsrrtpl dsrstpl dsrctxgr) DCMTK_TARGET_LINK_MODULES(dcmsr ofstd oflog dcmdata dcmimgle dcmimage) DCMTK_TARGET_LINK_LIBRARIES(dcmsr ${LIBXML_LIBS}) diff --git a/dcmsr/libsrc/Makefile.dep b/dcmsr/libsrc/Makefile.dep index c07a302c..e0af2251 100644 --- a/dcmsr/libsrc/Makefile.dep +++ b/dcmsr/libsrc/Makefile.dep @@ -1672,7 +1672,11 @@ dsrimgfr.o: dsrimgfr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtlist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrimgse.o: dsrimgse.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrimgse.h ../include/dcmtk/dcmsr/dsrtypes.h \ ../include/dcmtk/dcmsr/dsdefine.h \ @@ -1733,7 +1737,11 @@ dsrimgse.o: dsrimgse.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../include/dcmtk/dcmsr/dsrtlist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrimgtn.o: dsrimgtn.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtypes.h ../include/dcmtk/dcmsr/dsdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -2776,6 +2784,64 @@ dsrrtpl.o: dsrrtpl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmsr/dsrctpl.h \ ../include/dcmtk/dcmsr/dsrstpl.h ../include/dcmtk/dcmsr/dsrxmld.h \ ../include/dcmtk/dcmsr/dsrxmlc.h +dsrsaecc.o: dsrsaecc.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmsr/dsrsaecc.h ../include/dcmtk/dcmsr/dsriodcc.h \ + ../include/dcmtk/dcmsr/dsrtypes.h ../include/dcmtk/dcmsr/dsdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h dsrsc3gr.o: dsrsc3gr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrsc3gr.h ../include/dcmtk/dcmsr/dsrtypes.h \ ../include/dcmtk/dcmsr/dsdefine.h \ @@ -2836,7 +2902,11 @@ dsrsc3gr.o: dsrsc3gr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../include/dcmtk/dcmsr/dsrtlist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrsc3tn.o: dsrsc3tn.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtypes.h ../include/dcmtk/dcmsr/dsdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -3028,7 +3098,11 @@ dsrscogr.o: dsrscogr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../include/dcmtk/dcmsr/dsrtlist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrscotn.o: dsrscotn.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtypes.h ../include/dcmtk/dcmsr/dsdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -3490,7 +3564,11 @@ dsrtcodt.o: dsrtcodt.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ ../../ofstd/include/dcmtk/ofstd/ofdate.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrtcosp.o: dsrtcosp.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtcosp.h ../include/dcmtk/dcmsr/dsrtypes.h \ ../include/dcmtk/dcmsr/dsdefine.h \ @@ -3551,7 +3629,11 @@ dsrtcosp.o: dsrtcosp.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../include/dcmtk/dcmsr/dsrtlist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrtcotn.o: dsrtcotn.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtypes.h ../include/dcmtk/dcmsr/dsdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -3682,7 +3764,11 @@ dsrtcoto.o: dsrtcoto.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtlist.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrtcovl.o: dsrtcovl.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtcovl.h ../include/dcmtk/dcmsr/dsrtypes.h \ ../include/dcmtk/dcmsr/dsdefine.h \ @@ -4123,6 +4209,7 @@ dsrtypes.o: dsrtypes.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrspecc.h ../include/dcmtk/dcmsr/dsrmaccc.h \ ../include/dcmtk/dcmsr/dsrimpcc.h ../include/dcmtk/dcmsr/dsrc3dcc.h \ ../include/dcmtk/dcmsr/dsrrrdcc.h ../include/dcmtk/dcmsr/dsracqcc.h \ + ../include/dcmtk/dcmsr/dsrsaecc.h \ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ @@ -4264,7 +4351,11 @@ dsrwavch.o: dsrwavch.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtlist.h ../include/dcmtk/dcmsr/dsrxmld.h \ ../include/dcmtk/dcmsr/dsrxmlc.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../ofstd/include/dcmtk/ofstd/ofdiag.h \ + ../../ofstd/include/dcmtk/ofstd/diag/push.def \ + ../../ofstd/include/dcmtk/ofstd/diag/nsdfti.def \ + ../../ofstd/include/dcmtk/ofstd/diag/pop.def dsrwavtn.o: dsrwavtn.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtypes.h ../include/dcmtk/dcmsr/dsdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ diff --git a/dcmsr/libsrc/Makefile.in b/dcmsr/libsrc/Makefile.in index 318eab20..625bf554 100644 --- a/dcmsr/libsrc/Makefile.in +++ b/dcmsr/libsrc/Makefile.in @@ -33,7 +33,7 @@ objs = dsrdoc.o dsrposcn.o dsrdncsr.o dsrtree.o dsrdoctn.o dsrdoctr.o \ dsrsoprf.o dsrrefin.o dsrcsidl.o dsrxmlc.o dsrxmld.o \ dsriodcc.o dsrbascc.o dsrenhcc.o dsrcomcc.o dsrkeycc.o dsrmamcc.o \ dsrchecc.o dsrcolcc.o dsrprocc.o dsrxrdcc.o dsrspecc.o dsrmaccc.o \ - dsrimpcc.o dsrc3dcc.o dsrrrdcc.o dsracqcc.o + dsrimpcc.o dsrc3dcc.o dsrrrdcc.o dsracqcc.o dsrsaecc.o library = libdcmsr.$(LIBEXT) diff --git a/dcmsr/libsrc/dsrcsidl.cc b/dcmsr/libsrc/dsrcsidl.cc index 73f895f9..7d50c228 100644 --- a/dcmsr/libsrc/dsrcsidl.cc +++ b/dcmsr/libsrc/dsrcsidl.cc @@ -70,7 +70,7 @@ void DSRCodingSchemeIdentificationList::clear() } -OFBool DSRCodingSchemeIdentificationList::empty() const +OFBool DSRCodingSchemeIdentificationList::isEmpty() const { return ItemList.empty(); } diff --git a/dcmsr/libsrc/dsrdoc.cc b/dcmsr/libsrc/dsrdoc.cc index 00f2abef..d723303c 100644 --- a/dcmsr/libsrc/dsrdoc.cc +++ b/dcmsr/libsrc/dsrdoc.cc @@ -69,6 +69,7 @@ DSRDocument::DSRDocument(const E_DocumentType documentType) InstanceCreationTime(DCM_InstanceCreationTime), InstanceCreatorUID(DCM_InstanceCreatorUID), CodingSchemeIdentification(), + TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), StudyInstanceUID(DCM_StudyInstanceUID), StudyDate(DCM_StudyDate), StudyTime(DCM_StudyTime), @@ -135,6 +136,7 @@ void DSRDocument::clear() InstanceCreationTime.clear(); InstanceCreatorUID.clear(); CodingSchemeIdentification.clear(); + TimezoneOffsetFromUTC.clear(); StudyInstanceUID.clear(); StudyDate.clear(); StudyTime.clear(); @@ -305,7 +307,7 @@ OFCondition DSRDocument::print(STD_NAMESPACE ostream &stream, DCMSR_PRINT_HEADER_FIELD_END } /* predecessor documents */ - if (!PredecessorDocuments.empty()) + if (!PredecessorDocuments.isEmpty()) { DCMSR_PRINT_HEADER_FIELD_START("Predecessor Docs ", " : ") stream << PredecessorDocuments.getNumberOfInstances(); @@ -313,14 +315,14 @@ OFCondition DSRDocument::print(STD_NAMESPACE ostream &stream, } } /* identical documents */ - if (!IdenticalDocuments.empty()) + if (!IdenticalDocuments.isEmpty()) { DCMSR_PRINT_HEADER_FIELD_START("Identical Docs ", " : ") stream << IdenticalDocuments.getNumberOfInstances(); DCMSR_PRINT_HEADER_FIELD_END } /* referenced instances */ - if (!ReferencedInstances.empty()) + if (!ReferencedInstances.isEmpty()) { DCMSR_PRINT_HEADER_FIELD_START("References Objects ", " : ") stream << ReferencedInstances.getNumberOfItems(); @@ -452,6 +454,14 @@ OFCondition DSRDocument::read(DcmItem &dataset, getAndCheckElementFromDataset(dataset, InstanceCreationTime, "1", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, InstanceCreatorUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentification.read(dataset, flags); + if (requiresTimezoneModule(documentType)) + { + // --- Timezone Module --- + getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "1", "TimezoneModule"); + } else { + // --- SOP Common Module --- + getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); + } // --- General Study and Patient Module --- readStudyData(dataset, flags); @@ -623,6 +633,14 @@ OFCondition DSRDocument::write(DcmItem &dataset, addElementToDataset(result, dataset, new DcmTime(InstanceCreationTime), "1", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(InstanceCreatorUID), "1", "3", "SOPCommonModule"); CodingSchemeIdentification.write(dataset); + if (requiresTimezoneModule(getDocumentType())) + { + // --- Timezone Module --- + addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "1", "TimezoneModule"); + } else { + // --- SOP Common Module --- + addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); + } // --- General Study Module --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(StudyInstanceUID), "1", "1", "GeneralStudyModule"); @@ -795,6 +813,10 @@ OFCondition DSRDocument::readXMLDocumentHeader(DSRXMLDocument &doc, doc.printUnexpectedNodeWarning(cursor); } } + else if (doc.matchNode(cursor, "timezone")) + { + doc.getElementFromNodeContent(cursor, TimezoneOffsetFromUTC, NULL, OFTrue /*encoding*/); + } else if (doc.matchNode(cursor, "modality")) { OFString tmpString; @@ -910,14 +932,20 @@ OFCondition DSRDocument::readXMLPatientData(const DSRXMLDocument &doc, OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc, DSRXMLCursor cursor, - const size_t /*flags*/) + const size_t flags) { OFCondition result = SR_EC_InvalidDocument; if (cursor.valid()) { OFString tmpString; /* get Study Instance UID from XML attribute */ - result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid"); + if (flags & XF_acceptEmptyStudySeriesInstanceUID) + { + if (doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad()) + doc.printMissingAttributeWarning(cursor, "uid"); + result = EC_Normal; + } else + result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid"); /* goto first sub-element */ cursor.gotoChild(); /* iterate over all nodes */ @@ -956,14 +984,20 @@ OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc, OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc, DSRXMLCursor cursor, - const size_t /*flags*/) + const size_t flags) { OFCondition result = SR_EC_InvalidDocument; if (cursor.valid()) { OFString tmpString; /* get Series Instance UID from XML attribute */ - result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid"); + if (flags & XF_acceptEmptyStudySeriesInstanceUID) + { + if (doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad()) + doc.printMissingAttributeWarning(cursor, "uid"); + result = EC_Normal; + } else + result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid"); /* goto first sub-element */ cursor.gotoChild(); /* iterate over all nodes */ @@ -999,14 +1033,20 @@ OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc, OFCondition DSRDocument::readXMLInstanceData(const DSRXMLDocument &doc, DSRXMLCursor cursor, - const size_t /*flags*/) + const size_t flags) { OFCondition result = SR_EC_InvalidDocument; if (cursor.valid()) { OFString tmpString; /* get SOP Instance UID from XML attribute */ - result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid"); + if (flags & XF_acceptEmptyStudySeriesInstanceUID) + { + if (doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad()) + doc.printMissingAttributeWarning(cursor, "uid"); + result = EC_Normal; + } else + result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid"); /* goto first sub-element */ cursor.gotoChild(); /* iterate over all nodes */ @@ -1015,6 +1055,8 @@ OFCondition DSRDocument::readXMLInstanceData(const DSRXMLDocument &doc, /* check for known element tags */ if (doc.matchNode(cursor, "creation")) { + /* Instance Creator UID */ + doc.getElementFromAttribute(cursor, InstanceCreatorUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/); /* Instance Creation Date */ DSRDateTreeNode::getValueFromXMLNodeContent(doc, doc.getNamedNode(cursor.getChild(), "date"), tmpString); InstanceCreationDate.putOFStringArray(tmpString); @@ -1224,6 +1266,7 @@ OFCondition DSRDocument::writeXML(STD_NAMESPACE ostream &stream, stream << dcmFindNameOfUID(tmpString.c_str(), "" /* empty value as default */); stream << "" << OFendl; writeStringFromElementToXML(stream, SpecificCharacterSet, "charset", (flags & XF_writeEmptyTags) > 0); + writeStringFromElementToXML(stream, TimezoneOffsetFromUTC, "timezone", (flags & XF_writeEmptyTags) > 0); writeStringFromElementToXML(stream, Modality, "modality", (flags & XF_writeEmptyTags) > 0); /* check for additional device information */ if (!ManufacturerModelName.isEmpty()) @@ -1299,13 +1342,13 @@ OFCondition DSRDocument::writeXML(STD_NAMESPACE ostream &stream, } stream << "" << OFendl; - if ((flags & XF_writeEmptyTags) || !CodingSchemeIdentification.empty()) + if ((flags & XF_writeEmptyTags) || !CodingSchemeIdentification.isEmpty()) { stream << "" << OFendl; CodingSchemeIdentification.writeXML(stream, flags); stream << "" << OFendl; } - if ((flags & XF_writeEmptyTags) || !CurrentRequestedProcedureEvidence.empty()) + if ((flags & XF_writeEmptyTags) || !CurrentRequestedProcedureEvidence.isEmpty()) { stream << "" << OFendl; CurrentRequestedProcedureEvidence.writeXML(stream, flags); @@ -1313,13 +1356,13 @@ OFCondition DSRDocument::writeXML(STD_NAMESPACE ostream &stream, } if (getDocumentType() != DT_KeyObjectSelectionDocument) { - if ((flags & XF_writeEmptyTags) || !PertinentOtherEvidence.empty()) + if ((flags & XF_writeEmptyTags) || !PertinentOtherEvidence.isEmpty()) { stream << "" << OFendl; PertinentOtherEvidence.writeXML(stream, flags); stream << "" << OFendl; } - if ((flags & XF_writeEmptyTags) || !ReferencedInstances.empty()) + if ((flags & XF_writeEmptyTags) || !ReferencedInstances.isEmpty()) { stream << "" << OFendl; ReferencedInstances.writeXML(stream, flags); @@ -1366,14 +1409,14 @@ OFCondition DSRDocument::writeXML(STD_NAMESPACE ostream &stream, } stream << "" << OFendl; - if ((flags & XF_writeEmptyTags) || !PredecessorDocuments.empty()) + if ((flags & XF_writeEmptyTags) || !PredecessorDocuments.isEmpty()) { stream << "" << OFendl; PredecessorDocuments.writeXML(stream, flags); stream << "" << OFendl; } } - if ((flags & XF_writeEmptyTags) || !IdenticalDocuments.empty()) + if ((flags & XF_writeEmptyTags) || !IdenticalDocuments.isEmpty()) { stream << "" << OFendl; IdenticalDocuments.writeXML(stream, flags); @@ -1539,7 +1582,7 @@ OFCondition DSRDocument::renderHTML(STD_NAMESPACE ostream &stream, /* used for HTML tmpString conversion */ OFString htmlString; /* update only some DICOM attributes */ - updateAttributes(OFFalse /* updateAll */); + updateAttributes(OFFalse /*updateAll*/); // --- HTML/XHTML document structure (start) --- @@ -1742,7 +1785,7 @@ OFCondition DSRDocument::renderHTML(STD_NAMESPACE ostream &stream, stream << "" << OFendl; } /* predecessor documents */ - if (!PredecessorDocuments.empty()) + if (!PredecessorDocuments.isEmpty()) { stream << "" << OFendl; stream << "Predecessor Docs:" << OFendl; @@ -1751,7 +1794,7 @@ OFCondition DSRDocument::renderHTML(STD_NAMESPACE ostream &stream, } } /* identical documents */ - if (!IdenticalDocuments.empty()) + if (!IdenticalDocuments.isEmpty()) { stream << "" << OFendl; stream << "Identical Docs:" << OFendl; @@ -1759,7 +1802,7 @@ OFCondition DSRDocument::renderHTML(STD_NAMESPACE ostream &stream, stream << "" << OFendl; } /* referenced instances */ - if (!ReferencedInstances.empty()) + if (!ReferencedInstances.isEmpty()) { stream << "" << OFendl; stream << "Referenced Objects:" << OFendl; @@ -1981,7 +2024,13 @@ DSRTypes::E_VerificationFlag DSRDocument::getVerificationFlag() const } -size_t DSRDocument::getNumberOfVerifyingObservers() +OFBool DSRDocument::hasVerifyingObservers() const +{ + return (VerifyingObserver.card() > 0); +} + + +size_t DSRDocument::getNumberOfVerifyingObservers() const { return OFstatic_cast(size_t, VerifyingObserver.card()); } @@ -2140,6 +2189,13 @@ OFCondition DSRDocument::getInstanceCreatorUID(OFString &value, } +OFCondition DSRDocument::getTimezoneOffsetFromUTC(OFString &value, + const signed long pos) const +{ + return getStringValueFromElement(TimezoneOffsetFromUTC, value, pos); +} + + OFCondition DSRDocument::getPatientName(OFString &value, const signed long pos) const { @@ -2343,6 +2399,16 @@ OFCondition DSRDocument::setCompletionFlagDescription(const OFString &value, } +OFCondition DSRDocument::setTimezoneOffsetFromUTC(const OFString &value, + const OFBool check) +{ + OFCondition result = (check) ? DcmShortString::checkStringValue(value, "1", getSpecificCharacterSet()) : EC_Normal; + if (result.good()) + result = TimezoneOffsetFromUTC.putOFStringArray(value); + return result; +} + + OFCondition DSRDocument::setPatientName(const OFString &value, const OFBool check) { @@ -2831,6 +2897,7 @@ OFCondition DSRDocument::finalizeDocument() void DSRDocument::updateAttributes(const OFBool updateAll) { + DCMSR_DEBUG("Updating " << (updateAll ? "all " : "") << "DICOM header attributes"); const E_DocumentType documentType = getDocumentType(); /* retrieve SOP class UID from internal document type */ SOPClassUID.putString(documentTypeToSOPClassUID(documentType)); @@ -2838,6 +2905,14 @@ void DSRDocument::updateAttributes(const OFBool updateAll) Modality.putString(documentTypeToModality(documentType)); if (updateAll) { + OFString tmpString; + /* determine local timezone (if required) */ + if (requiresTimezoneModule(documentType) && TimezoneOffsetFromUTC.isEmpty()) + { + DCMSR_DEBUG(" Determining local timezone for Timezone Offset From UTC"); + TimezoneOffsetFromUTC.putOFStringArray(localTimezone(tmpString)); + } + /* create new instance number if required (type 1) */ if (InstanceNumber.isEmpty()) InstanceNumber.putString("1"); @@ -2849,7 +2924,7 @@ void DSRDocument::updateAttributes(const OFBool updateAll) /* create new SOP instance UID if required */ if (SOPInstanceUID.isEmpty()) { - OFString tmpString; + DCMSR_DEBUG(" Generating new value for SOP Instance UID"); SOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT)); /* set instance creation date to current date (YYYYMMDD) */ InstanceCreationDate.putOFStringArray(currentDate(tmpString)); @@ -2860,10 +2935,16 @@ void DSRDocument::updateAttributes(const OFBool updateAll) } /* create new study instance UID if required */ if (StudyInstanceUID.isEmpty()) + { + DCMSR_DEBUG(" Generating new value for Study Instance UID"); StudyInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT)); + } /* create new series instance UID if required */ if (SeriesInstanceUID.isEmpty()) + { + DCMSR_DEBUG(" Generating new value for Series Instance UID"); SeriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT)); + } /* check and set content date if required */ if (ContentDate.isEmpty()) diff --git a/dcmsr/libsrc/dsrdoctr.cc b/dcmsr/libsrc/dsrdoctr.cc index a69adb76..69ec0c10 100644 --- a/dcmsr/libsrc/dsrdoctr.cc +++ b/dcmsr/libsrc/dsrdoctr.cc @@ -444,3 +444,12 @@ void DSRDocumentTree::swap(DSRDocumentTree &tree) /* swap other members */ OFswap(DocumentType, tree.DocumentType); } + + +OFCondition DSRDocumentTree::print(STD_NAMESPACE ostream &stream, + const size_t flags, + const DSRPositionCounter *posCounter) +{ + /* call inherited method */ + return DSRDocumentSubTree::print(stream, flags, posCounter); +} diff --git a/dcmsr/libsrc/dsrimgfr.cc b/dcmsr/libsrc/dsrimgfr.cc index 05ce9406..b4c2cc6e 100644 --- a/dcmsr/libsrc/dsrimgfr.cc +++ b/dcmsr/libsrc/dsrimgfr.cc @@ -30,10 +30,16 @@ #define INCLUDE_CSTDIO #include "dcmtk/ofstd/ofstdinc.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const Sint32 DSRListOfItems::EmptyItem = 0; +#include DCMTK_DIAGNOSTIC_POP DSRImageFrameList::DSRImageFrameList() diff --git a/dcmsr/libsrc/dsrimgse.cc b/dcmsr/libsrc/dsrimgse.cc index bc45139b..1d2b6a4d 100644 --- a/dcmsr/libsrc/dsrimgse.cc +++ b/dcmsr/libsrc/dsrimgse.cc @@ -30,10 +30,16 @@ #define INCLUDE_CSTDIO #include "dcmtk/ofstd/ofstdinc.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const Uint16 DSRListOfItems::EmptyItem = 0; +#include DCMTK_DIAGNOSTIC_POP DSRImageSegmentList::DSRImageSegmentList() diff --git a/dcmsr/libsrc/dsrrefin.cc b/dcmsr/libsrc/dsrrefin.cc index 1becfc81..46eb7086 100644 --- a/dcmsr/libsrc/dsrrefin.cc +++ b/dcmsr/libsrc/dsrrefin.cc @@ -63,7 +63,7 @@ void DSRReferencedInstanceList::clear() } -OFBool DSRReferencedInstanceList::empty() const +OFBool DSRReferencedInstanceList::isEmpty() const { return ItemList.empty(); } diff --git a/dcmsr/libsrc/dsrsaecc.cc b/dcmsr/libsrc/dsrsaecc.cc new file mode 100644 index 00000000..fced6b49 --- /dev/null +++ b/dcmsr/libsrc/dsrsaecc.cc @@ -0,0 +1,133 @@ +/* + * + * Copyright (C) 2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsr + * + * Author: Joerg Riesmeier + * + * Purpose: + * classes: DSRSimplifiedAdultEchoSRConstraintChecker + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/dcmsr/dsrsaecc.h" + + +DSRSimplifiedAdultEchoSRConstraintChecker::DSRSimplifiedAdultEchoSRConstraintChecker() + : DSRIODConstraintChecker() +{ +} + + +DSRSimplifiedAdultEchoSRConstraintChecker::~DSRSimplifiedAdultEchoSRConstraintChecker() +{ +} + + +OFBool DSRSimplifiedAdultEchoSRConstraintChecker::isByReferenceAllowed() const +{ + return OFFalse; +} + + +OFBool DSRSimplifiedAdultEchoSRConstraintChecker::isTemplateSupportRequired() const +{ + return OFTrue; +} + + +OFCondition DSRSimplifiedAdultEchoSRConstraintChecker::getRootTemplateIdentification(OFString &templateIdentifier, + OFString &mappingResource) const +{ + templateIdentifier = "5300"; + mappingResource = "DCMR"; + return EC_Normal; +} + + +DSRTypes::E_DocumentType DSRSimplifiedAdultEchoSRConstraintChecker::getDocumentType() const +{ + return DT_SimplifiedAdultEchoSR; +} + + +OFBool DSRSimplifiedAdultEchoSRConstraintChecker::checkContentRelationship(const E_ValueType sourceValueType, + const E_RelationshipType relationshipType, + const E_ValueType targetValueType, + const OFBool byReference) const +{ + /* the following code implements the constraints of table A.35.17-2 in DICOM PS3.3 */ + OFBool result = OFFalse; + /* by-reference relationships not allowed at all */ + if (!byReference) + { + /* row 1 of the table */ + if ((relationshipType == RT_contains) && (sourceValueType == VT_Container)) + { + result = (targetValueType == VT_Text) || (targetValueType == VT_Code) || (targetValueType == VT_Num) || + (targetValueType == VT_DateTime) || (targetValueType == VT_UIDRef) || (targetValueType == VT_PName) || + (targetValueType == VT_Container); + } + /* row 2 of the table */ + else if ((relationshipType == RT_hasObsContext) && + ((sourceValueType == VT_Text) || (sourceValueType == VT_Code) || (sourceValueType == VT_Num))) + { + result = (targetValueType == VT_Text) || (targetValueType == VT_Code) || (targetValueType == VT_Num) || + (targetValueType == VT_DateTime) || (targetValueType == VT_UIDRef) || (targetValueType == VT_PName) || + (targetValueType == VT_Composite); + } + /* row 3 of the table */ + else if ((relationshipType == RT_hasAcqContext) && (sourceValueType == VT_Container)) + { + result = (targetValueType == VT_Text) || (targetValueType == VT_Code) || (targetValueType == VT_Num) || + (targetValueType == VT_DateTime) || (targetValueType == VT_UIDRef) || (targetValueType == VT_PName) || + (targetValueType == VT_Container); + } + /* row 4 of the table */ + else if (relationshipType == RT_hasConceptMod) + { + result = (targetValueType == VT_Text) || (targetValueType == VT_Code); + } + /* row 5 the table */ + else if ((relationshipType == RT_hasProperties) && + ((sourceValueType == VT_Text) || (sourceValueType == VT_Code) || (sourceValueType == VT_Num))) + { + result = (targetValueType == VT_Text) || (targetValueType == VT_Code) || (targetValueType == VT_Num) || + (targetValueType == VT_DateTime) || (targetValueType == VT_UIDRef) || (targetValueType == VT_PName) || + (targetValueType == VT_Container); + } + /* row 6 of the table */ + else if ((relationshipType == RT_inferredFrom) && + ((sourceValueType == VT_Text) || (sourceValueType == VT_Code) || (sourceValueType == VT_Num))) + { + result = (targetValueType == VT_Text) || (targetValueType == VT_Code) || (targetValueType == VT_Num) || + (targetValueType == VT_DateTime) || (targetValueType == VT_UIDRef) || (targetValueType == VT_Container) || + (targetValueType == VT_Image) || (targetValueType == VT_SCoord) || (targetValueType == VT_Waveform) || + (targetValueType == VT_TCoord); + } + /* row 7 of the table */ + else if ((relationshipType == RT_selectedFrom) && (sourceValueType == VT_SCoord)) + { + result = (targetValueType == VT_Image); + } + /* row 8 of the table */ + else if ((relationshipType == RT_selectedFrom) && (sourceValueType == VT_TCoord)) + { + result = (targetValueType == VT_Waveform); + } + } + return result; +} diff --git a/dcmsr/libsrc/dsrsc3gr.cc b/dcmsr/libsrc/dsrsc3gr.cc index 794f1be8..7e281f79 100644 --- a/dcmsr/libsrc/dsrsc3gr.cc +++ b/dcmsr/libsrc/dsrsc3gr.cc @@ -29,10 +29,16 @@ #include "dcmtk/dcmdata/dcvrfl.h" #include "dcmtk/ofstd/ofstd.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const DSRGraphicData3DItem DSRListOfItems::EmptyItem(0, 0, 0); +#include DCMTK_DIAGNOSTIC_POP DSRGraphicData3DList::DSRGraphicData3DList() diff --git a/dcmsr/libsrc/dsrscogr.cc b/dcmsr/libsrc/dsrscogr.cc index 745b4201..815c2844 100644 --- a/dcmsr/libsrc/dsrscogr.cc +++ b/dcmsr/libsrc/dsrscogr.cc @@ -29,10 +29,16 @@ #include "dcmtk/dcmdata/dcvrfl.h" #include "dcmtk/ofstd/ofstd.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const DSRGraphicDataItem DSRListOfItems::EmptyItem(0, 0); +#include DCMTK_DIAGNOSTIC_POP DSRGraphicDataList::DSRGraphicDataList() diff --git a/dcmsr/libsrc/dsrsoprf.cc b/dcmsr/libsrc/dsrsoprf.cc index 512b123a..fe8466af 100644 --- a/dcmsr/libsrc/dsrsoprf.cc +++ b/dcmsr/libsrc/dsrsoprf.cc @@ -805,7 +805,7 @@ void DSRSOPInstanceReferenceList::clear() } -OFBool DSRSOPInstanceReferenceList::empty() const +OFBool DSRSOPInstanceReferenceList::isEmpty() const { return StudyList.empty(); } diff --git a/dcmsr/libsrc/dsrtcodt.cc b/dcmsr/libsrc/dsrtcodt.cc index c11180ac..c4fdd857 100644 --- a/dcmsr/libsrc/dsrtcodt.cc +++ b/dcmsr/libsrc/dsrtcodt.cc @@ -27,10 +27,16 @@ #include "dcmtk/dcmdata/dcdeftag.h" #include "dcmtk/dcmdata/dcvrdt.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const OFString DSRListOfItems::EmptyItem; +#include DCMTK_DIAGNOSTIC_POP DSRReferencedDateTimeList::DSRReferencedDateTimeList() diff --git a/dcmsr/libsrc/dsrtcosp.cc b/dcmsr/libsrc/dsrtcosp.cc index fc07fafb..b91f19d8 100644 --- a/dcmsr/libsrc/dsrtcosp.cc +++ b/dcmsr/libsrc/dsrtcosp.cc @@ -30,10 +30,16 @@ #define INCLUDE_CSTDIO #include "dcmtk/ofstd/ofstdinc.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const Uint32 DSRListOfItems::EmptyItem = 0; +#include DCMTK_DIAGNOSTIC_POP DSRReferencedSamplePositionList::DSRReferencedSamplePositionList() diff --git a/dcmsr/libsrc/dsrtcoto.cc b/dcmsr/libsrc/dsrtcoto.cc index 9030f51c..277fc74b 100644 --- a/dcmsr/libsrc/dsrtcoto.cc +++ b/dcmsr/libsrc/dsrtcoto.cc @@ -31,10 +31,15 @@ #include "dcmtk/ofstd/ofstd.h" #define INCLUDE_CSTDIO #include "dcmtk/ofstd/ofstdinc.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const Float64 DSRListOfItems::EmptyItem = 0; - +#include DCMTK_DIAGNOSTIC_POP DSRReferencedTimeOffsetList::DSRReferencedTimeOffsetList() : DSRListOfItems() diff --git a/dcmsr/libsrc/dsrtypes.cc b/dcmsr/libsrc/dsrtypes.cc index 19a4d499..f95ac688 100644 --- a/dcmsr/libsrc/dsrtypes.cc +++ b/dcmsr/libsrc/dsrtypes.cc @@ -55,6 +55,7 @@ #include "dcmtk/dcmsr/dsrc3dcc.h" #include "dcmtk/dcmsr/dsrrrdcc.h" #include "dcmtk/dcmsr/dsracqcc.h" +#include "dcmtk/dcmsr/dsrsaecc.h" #include "dcmtk/dcmdata/dcuid.h" #include "dcmtk/dcmdata/dcvrda.h" @@ -74,96 +75,97 @@ *---------------------------------*/ /* read flags */ -const size_t DSRTypes::RF_readDigitalSignatures = 1 << 0; -const size_t DSRTypes::RF_acceptUnknownRelationshipType = 1 << 1; -const size_t DSRTypes::RF_acceptInvalidContentItemValue = 1 << 2; -const size_t DSRTypes::RF_ignoreRelationshipConstraints = 1 << 3; -const size_t DSRTypes::RF_ignoreContentItemErrors = 1 << 4; -const size_t DSRTypes::RF_skipInvalidContentItems = 1 << 5; -const size_t DSRTypes::RF_showCurrentlyProcessedItem = 1 << 6; +const size_t DSRTypes::RF_readDigitalSignatures = 1 << 0; +const size_t DSRTypes::RF_acceptUnknownRelationshipType = 1 << 1; +const size_t DSRTypes::RF_acceptInvalidContentItemValue = 1 << 2; +const size_t DSRTypes::RF_ignoreRelationshipConstraints = 1 << 3; +const size_t DSRTypes::RF_ignoreContentItemErrors = 1 << 4; +const size_t DSRTypes::RF_skipInvalidContentItems = 1 << 5; +const size_t DSRTypes::RF_showCurrentlyProcessedItem = 1 << 6; /* renderHTML flags */ -const size_t DSRTypes::HF_neverExpandChildrenInline = 1 << 0; -const size_t DSRTypes::HF_alwaysExpandChildrenInline = 1 << 1; -const size_t DSRTypes::HF_renderInlineCodes = 1 << 2; -const size_t DSRTypes::HF_useCodeDetailsTooltip = 1 << 3; -const size_t DSRTypes::HF_renderConceptNameCodes = 1 << 4; -const size_t DSRTypes::HF_renderNumericUnitCodes = 1 << 5; -const size_t DSRTypes::HF_useCodeMeaningAsUnit = 1 << 6; -const size_t DSRTypes::HF_renderPatientTitle = 1 << 7; -const size_t DSRTypes::HF_renderNoDocumentHeader = 1 << 8; -const size_t DSRTypes::HF_renderDcmtkFootnote = 1 << 9; -const size_t DSRTypes::HF_renderFullData = 1 << 10; -const size_t DSRTypes::HF_renderSectionTitlesInline = 1 << 11; -const size_t DSRTypes::HF_copyStyleSheetContent = 1 << 12; -const size_t DSRTypes::HF_HTML32Compatibility = 1 << 13; -const size_t DSRTypes::HF_XHTML11Compatibility = 1 << 14; -const size_t DSRTypes::HF_addDocumentTypeReference = 1 << 15; -const size_t DSRTypes::HF_omitGeneratorMetaElement = 1 << 16; +const size_t DSRTypes::HF_neverExpandChildrenInline = 1 << 0; +const size_t DSRTypes::HF_alwaysExpandChildrenInline = 1 << 1; +const size_t DSRTypes::HF_renderInlineCodes = 1 << 2; +const size_t DSRTypes::HF_useCodeDetailsTooltip = 1 << 3; +const size_t DSRTypes::HF_renderConceptNameCodes = 1 << 4; +const size_t DSRTypes::HF_renderNumericUnitCodes = 1 << 5; +const size_t DSRTypes::HF_useCodeMeaningAsUnit = 1 << 6; +const size_t DSRTypes::HF_renderPatientTitle = 1 << 7; +const size_t DSRTypes::HF_renderNoDocumentHeader = 1 << 8; +const size_t DSRTypes::HF_renderDcmtkFootnote = 1 << 9; +const size_t DSRTypes::HF_renderFullData = 1 << 10; +const size_t DSRTypes::HF_renderSectionTitlesInline = 1 << 11; +const size_t DSRTypes::HF_copyStyleSheetContent = 1 << 12; +const size_t DSRTypes::HF_HTML32Compatibility = 1 << 13; +const size_t DSRTypes::HF_XHTML11Compatibility = 1 << 14; +const size_t DSRTypes::HF_addDocumentTypeReference = 1 << 15; +const size_t DSRTypes::HF_omitGeneratorMetaElement = 1 << 16; /* internal */ -const size_t DSRTypes::HF_renderItemsSeparately = 1 << 17; -const size_t DSRTypes::HF_renderItemInline = 1 << 18; -const size_t DSRTypes::HF_currentlyInsideAnnex = 1 << 19; -const size_t DSRTypes::HF_createFootnoteReferences = 1 << 20; -const size_t DSRTypes::HF_convertNonASCIICharacters = 1 << 21; +const size_t DSRTypes::HF_renderItemsSeparately = 1 << 17; +const size_t DSRTypes::HF_renderItemInline = 1 << 18; +const size_t DSRTypes::HF_currentlyInsideAnnex = 1 << 19; +const size_t DSRTypes::HF_createFootnoteReferences = 1 << 20; +const size_t DSRTypes::HF_convertNonASCIICharacters = 1 << 21; /* shortcuts */ -const size_t DSRTypes::HF_renderAllCodes = DSRTypes::HF_renderInlineCodes | - DSRTypes::HF_renderConceptNameCodes | - DSRTypes::HF_renderNumericUnitCodes; -const size_t DSRTypes::HF_internalUseOnly = DSRTypes::HF_renderItemsSeparately | - DSRTypes::HF_renderItemInline | - DSRTypes::HF_currentlyInsideAnnex | - DSRTypes::HF_createFootnoteReferences | - DSRTypes::HF_convertNonASCIICharacters; +const size_t DSRTypes::HF_renderAllCodes = DSRTypes::HF_renderInlineCodes | + DSRTypes::HF_renderConceptNameCodes | + DSRTypes::HF_renderNumericUnitCodes; +const size_t DSRTypes::HF_internalUseOnly = DSRTypes::HF_renderItemsSeparately | + DSRTypes::HF_renderItemInline | + DSRTypes::HF_currentlyInsideAnnex | + DSRTypes::HF_createFootnoteReferences | + DSRTypes::HF_convertNonASCIICharacters; /* read/writeXML flags */ -const size_t DSRTypes::XF_writeEmptyTags = 1 << 0; -const size_t DSRTypes::XF_writeTemplateIdentification = 1 << 1; -const size_t DSRTypes::XF_alwaysWriteItemIdentifier = 1 << 2; -const size_t DSRTypes::XF_codeComponentsAsAttribute = 1 << 3; -const size_t DSRTypes::XF_relationshipTypeAsAttribute = 1 << 4; -const size_t DSRTypes::XF_valueTypeAsAttribute = 1 << 5; -const size_t DSRTypes::XF_templateIdentifierAsAttribute = 1 << 6; -const size_t DSRTypes::XF_useDcmsrNamespace = 1 << 7; -const size_t DSRTypes::XF_addSchemaReference = 1 << 8; -const size_t DSRTypes::XF_validateSchema = 1 << 9; -const size_t DSRTypes::XF_templateElementEnclosesItems = 1 << 10; -const size_t DSRTypes::XF_addCommentsForIncludedTemplate = 1 << 11; +const size_t DSRTypes::XF_writeEmptyTags = 1 << 0; +const size_t DSRTypes::XF_writeTemplateIdentification = 1 << 1; +const size_t DSRTypes::XF_alwaysWriteItemIdentifier = 1 << 2; +const size_t DSRTypes::XF_codeComponentsAsAttribute = 1 << 3; +const size_t DSRTypes::XF_relationshipTypeAsAttribute = 1 << 4; +const size_t DSRTypes::XF_valueTypeAsAttribute = 1 << 5; +const size_t DSRTypes::XF_templateIdentifierAsAttribute = 1 << 6; +const size_t DSRTypes::XF_useDcmsrNamespace = 1 << 7; +const size_t DSRTypes::XF_addSchemaReference = 1 << 8; +const size_t DSRTypes::XF_validateSchema = 1 << 9; +const size_t DSRTypes::XF_templateElementEnclosesItems = 1 << 10; +const size_t DSRTypes::XF_addCommentsForIncludedTemplate = 1 << 11; +const size_t DSRTypes::XF_acceptEmptyStudySeriesInstanceUID = 1 << 12; /* shortcuts */ -const size_t DSRTypes::XF_encodeEverythingAsAttribute = DSRTypes::XF_codeComponentsAsAttribute | - DSRTypes::XF_relationshipTypeAsAttribute | - DSRTypes::XF_valueTypeAsAttribute | - DSRTypes::XF_templateIdentifierAsAttribute; +const size_t DSRTypes::XF_encodeEverythingAsAttribute = DSRTypes::XF_codeComponentsAsAttribute | + DSRTypes::XF_relationshipTypeAsAttribute | + DSRTypes::XF_valueTypeAsAttribute | + DSRTypes::XF_templateIdentifierAsAttribute; /* print flags */ -const size_t DSRTypes::PF_printItemPosition = 1 << 0; -const size_t DSRTypes::PF_shortenLongItemValues = 1 << 1; -const size_t DSRTypes::PF_printSOPInstanceUID = 1 << 2; -const size_t DSRTypes::PF_printConceptNameCodes = 1 << 3; -const size_t DSRTypes::PF_printNoDocumentHeader = 1 << 4; -const size_t DSRTypes::PF_printTemplateIdentification = 1 << 5; -const size_t DSRTypes::PF_useANSIEscapeCodes = 1 << 6; -const size_t DSRTypes::PF_printLongSOPClassName = 1 << 7; -const size_t DSRTypes::PF_printSOPClassUID = 1 << 8; -const size_t DSRTypes::PF_printInvalidCodes = 1 << 9; -const size_t DSRTypes::PF_printNodeID = 1 << 10; -const size_t DSRTypes::PF_indicateEnhancedEncodingMode = 1 << 11; -const size_t DSRTypes::PF_printAnnotation = 1 << 12; -const size_t DSRTypes::PF_hideIncludedTemplateNodes = 1 << 13; -const size_t DSRTypes::PF_dontCountIncludedTemplateNodes = 1 << 14; +const size_t DSRTypes::PF_printItemPosition = 1 << 0; +const size_t DSRTypes::PF_shortenLongItemValues = 1 << 1; +const size_t DSRTypes::PF_printSOPInstanceUID = 1 << 2; +const size_t DSRTypes::PF_printConceptNameCodes = 1 << 3; +const size_t DSRTypes::PF_printNoDocumentHeader = 1 << 4; +const size_t DSRTypes::PF_printTemplateIdentification = 1 << 5; +const size_t DSRTypes::PF_useANSIEscapeCodes = 1 << 6; +const size_t DSRTypes::PF_printLongSOPClassName = 1 << 7; +const size_t DSRTypes::PF_printSOPClassUID = 1 << 8; +const size_t DSRTypes::PF_printInvalidCodes = 1 << 9; +const size_t DSRTypes::PF_printNodeID = 1 << 10; +const size_t DSRTypes::PF_indicateEnhancedEncodingMode = 1 << 11; +const size_t DSRTypes::PF_printAnnotation = 1 << 12; +const size_t DSRTypes::PF_hideIncludedTemplateNodes = 1 << 13; +const size_t DSRTypes::PF_dontCountIncludedTemplateNodes = 1 << 14; /* shortcuts */ -const size_t DSRTypes::PF_printAllCodes = DSRTypes::PF_printConceptNameCodes; +const size_t DSRTypes::PF_printAllCodes = DSRTypes::PF_printConceptNameCodes; /* checkByReferenceRelationships modes */ -const size_t DSRTypes::CM_updatePositionString = 1 << 0; -const size_t DSRTypes::CM_updateNodeID = 1 << 1; -const size_t DSRTypes::CM_resetReferenceTargetFlag = 1 << 2; +const size_t DSRTypes::CM_updatePositionString = 1 << 0; +const size_t DSRTypes::CM_updateNodeID = 1 << 1; +const size_t DSRTypes::CM_resetReferenceTargetFlag = 1 << 2; /* checkByReferenceRelationships bit masks (avoid conflicts!) */ -const size_t DSRTypes::CB_maskPrintFlags = DSRTypes::PF_dontCountIncludedTemplateNodes; -const size_t DSRTypes::CB_maskReadFlags = DSRTypes::RF_acceptUnknownRelationshipType | - DSRTypes::RF_ignoreRelationshipConstraints | - DSRTypes::RF_showCurrentlyProcessedItem; +const size_t DSRTypes::CB_maskPrintFlags = DSRTypes::PF_dontCountIncludedTemplateNodes; +const size_t DSRTypes::CB_maskReadFlags = DSRTypes::RF_acceptUnknownRelationshipType | + DSRTypes::RF_ignoreRelationshipConstraints | + DSRTypes::RF_showCurrentlyProcessedItem; /*---------------------* @@ -174,7 +176,7 @@ struct S_DocumentTypeNameMap { DSRTypes::E_DocumentType Type; const char *SOPClassUID; - OFBool EnhancedEquipmentModule; + size_t ExtendedModules; const char *Modality; const char *ReadableName; }; @@ -306,30 +308,34 @@ makeOFConditionConst(SR_EC_ValueSetConstraintViolated, OFM_dcmsr, 32, O makeOFConditionConst(SR_EC_InvalidTemplateStructure, OFM_dcmsr, 33, OF_error, "Invalid Template Structure"); makeOFConditionConst(SR_EC_CannotProcessIncludedTemplates, OFM_dcmsr, 34, OF_error, "Cannot process Document Tree with included Templates"); - // NOTE: // error codes 1000 and above are reserved for the submodule "cmr" +/* extended IOD modules (only used internally) */ +const size_t EM_EnhancedEquipment = 1 << 0; +const size_t EM_Timezone = 1 << 1; + static const S_DocumentTypeNameMap DocumentTypeNameMap[] = { - {DSRTypes::DT_invalid, "", OFFalse, "", "invalid document type"}, - {DSRTypes::DT_BasicTextSR, UID_BasicTextSRStorage, OFFalse, "SR", "Basic Text SR"}, - {DSRTypes::DT_EnhancedSR, UID_EnhancedSRStorage, OFFalse, "SR", "Enhanced SR"}, - {DSRTypes::DT_ComprehensiveSR, UID_ComprehensiveSRStorage, OFFalse, "SR", "Comprehensive SR"}, - {DSRTypes::DT_KeyObjectSelectionDocument, UID_KeyObjectSelectionDocumentStorage, OFFalse, "KO", "Key Object Selection Document"}, - {DSRTypes::DT_MammographyCadSR, UID_MammographyCADSRStorage, OFFalse, "SR", "Mammography CAD SR"}, - {DSRTypes::DT_ChestCadSR, UID_ChestCADSRStorage, OFFalse, "SR", "Chest CAD SR"}, - {DSRTypes::DT_ColonCadSR, UID_ColonCADSRStorage, OFTrue, "SR", "Colon CAD SR"}, - {DSRTypes::DT_ProcedureLog, UID_ProcedureLogStorage, OFFalse, "SR", "Procedure Log"}, - {DSRTypes::DT_XRayRadiationDoseSR, UID_XRayRadiationDoseSRStorage, OFTrue, "SR", "X-Ray Radiation Dose SR"}, - {DSRTypes::DT_SpectaclePrescriptionReport, UID_SpectaclePrescriptionReportStorage, OFTrue, "SR", "Spectacle Prescription Report"}, - {DSRTypes::DT_MacularGridThicknessAndVolumeReport, UID_MacularGridThicknessAndVolumeReportStorage, OFTrue, "SR", "Macular Grid Thickness and Volume Report"}, - {DSRTypes::DT_ImplantationPlanSRDocument, UID_ImplantationPlanSRDocumentStorage, OFTrue, "SR", "Implantation Plan SR Document"}, - {DSRTypes::DT_Comprehensive3DSR, UID_Comprehensive3DSRStorage, OFFalse, "SR", "Comprehensive 3D SR"}, - {DSRTypes::DT_RadiopharmaceuticalRadiationDoseSR, UID_RadiopharmaceuticalRadiationDoseSRStorage, OFTrue, "SR", "Radiopharmaceutical Radiation Dose SR"}, - {DSRTypes::DT_ExtensibleSR, UID_ExtensibleSRStorage, OFTrue, "SR", "Extensible SR"}, - {DSRTypes::DT_AcquisitionContextSR, UID_AcquisitionContextSRStorage, OFTrue, "SR", "Acquisition Context SR"} + {DSRTypes::DT_invalid, "", 0, "", "invalid document type"}, + {DSRTypes::DT_BasicTextSR, UID_BasicTextSRStorage, 0, "SR", "Basic Text SR"}, + {DSRTypes::DT_EnhancedSR, UID_EnhancedSRStorage, 0, "SR", "Enhanced SR"}, + {DSRTypes::DT_ComprehensiveSR, UID_ComprehensiveSRStorage, 0, "SR", "Comprehensive SR"}, + {DSRTypes::DT_KeyObjectSelectionDocument, UID_KeyObjectSelectionDocumentStorage, 0, "KO", "Key Object Selection Document"}, + {DSRTypes::DT_MammographyCadSR, UID_MammographyCADSRStorage, 0, "SR", "Mammography CAD SR"}, + {DSRTypes::DT_ChestCadSR, UID_ChestCADSRStorage, 0, "SR", "Chest CAD SR"}, + {DSRTypes::DT_ColonCadSR, UID_ColonCADSRStorage, EM_EnhancedEquipment, "SR", "Colon CAD SR"}, + {DSRTypes::DT_ProcedureLog, UID_ProcedureLogStorage, 0, "SR", "Procedure Log"}, + {DSRTypes::DT_XRayRadiationDoseSR, UID_XRayRadiationDoseSRStorage, EM_EnhancedEquipment, "SR", "X-Ray Radiation Dose SR"}, + {DSRTypes::DT_SpectaclePrescriptionReport, UID_SpectaclePrescriptionReportStorage, EM_EnhancedEquipment, "SR", "Spectacle Prescription Report"}, + {DSRTypes::DT_MacularGridThicknessAndVolumeReport, UID_MacularGridThicknessAndVolumeReportStorage, EM_EnhancedEquipment, "SR", "Macular Grid Thickness and Volume Report"}, + {DSRTypes::DT_ImplantationPlanSRDocument, UID_ImplantationPlanSRDocumentStorage, EM_EnhancedEquipment, "SR", "Implantation Plan SR Document"}, + {DSRTypes::DT_Comprehensive3DSR, UID_Comprehensive3DSRStorage, 0, "SR", "Comprehensive 3D SR"}, + {DSRTypes::DT_RadiopharmaceuticalRadiationDoseSR, UID_RadiopharmaceuticalRadiationDoseSRStorage, EM_EnhancedEquipment, "SR", "Radiopharmaceutical Radiation Dose SR"}, + {DSRTypes::DT_ExtensibleSR, UID_ExtensibleSRStorage, EM_EnhancedEquipment, "SR", "Extensible SR"}, + {DSRTypes::DT_AcquisitionContextSR, UID_AcquisitionContextSRStorage, EM_EnhancedEquipment, "SR", "Acquisition Context SR"}, + {DSRTypes::DT_SimplifiedAdultEchoSR, UID_SimplifiedAdultEchoSRStorage, EM_EnhancedEquipment | EM_Timezone, "SR", "Simplified Adult Echo SR"} }; @@ -544,7 +550,16 @@ OFBool DSRTypes::requiresEnhancedEquipmentModule(const E_DocumentType documentTy const S_DocumentTypeNameMap *iterator = DocumentTypeNameMap; while ((iterator->Type != DT_last) && (iterator->Type != documentType)) iterator++; - return iterator->EnhancedEquipmentModule; + return (iterator->ExtendedModules & EM_EnhancedEquipment) > 0; +} + + +OFBool DSRTypes::requiresTimezoneModule(const E_DocumentType documentType) +{ + const S_DocumentTypeNameMap *iterator = DocumentTypeNameMap; + while ((iterator->Type != DT_last) && (iterator->Type != documentType)) + iterator++; + return (iterator->ExtendedModules & EM_Timezone) > 0; } @@ -1181,6 +1196,15 @@ const OFString &DSRTypes::currentDateTime(OFString &dateTimeString) } +const OFString &DSRTypes::localTimezone(OFString &timezoneString) +{ + OFString dateTimeString; + DcmDateTime::getCurrentDateTime(dateTimeString, OFFalse /*seconds*/, OFFalse /*fraction*/, OFTrue /*timeZone*/); + timezoneString.assign(dateTimeString.substr(8 /* YYYYMMDD */ + 4 /* HHMM */, 5 /* &ZZZZ */)); + return timezoneString; +} + + const OFString &DSRTypes::dicomToReadableDate(const OFString &dicomDate, OFString &readableDate) { @@ -1462,6 +1486,9 @@ DSRIODConstraintChecker *DSRTypes::createIODConstraintChecker(const E_DocumentTy case DT_AcquisitionContextSR: checker = new DSRAcquisitionContextConstraintChecker(); break; + case DT_SimplifiedAdultEchoSR: + checker = new DSRSimplifiedAdultEchoSRConstraintChecker(); + break; case DT_invalid: /* nothing to do */ break; diff --git a/dcmsr/libsrc/dsrwavch.cc b/dcmsr/libsrc/dsrwavch.cc index 86e44afb..b73a4c04 100644 --- a/dcmsr/libsrc/dsrwavch.cc +++ b/dcmsr/libsrc/dsrwavch.cc @@ -31,10 +31,16 @@ #define INCLUDE_CSTDIO #include "dcmtk/ofstd/ofstdinc.h" +#include "dcmtk/ofstd/ofdiag.h" +// This is not about specialization but static member initialization, the +// Visual Studio warning is therefore inappropriate and suppressed. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION /* declared in class DSRListOfItems */ DCMTK_EXPLICIT_SPECIALIZATION const DSRWaveformChannelItem DSRListOfItems::EmptyItem(0, 0); +#include DCMTK_DIAGNOSTIC_POP DSRWaveformChannelList::DSRWaveformChannelList() diff --git a/dcmsr/libsrc/dsrxmld.cc b/dcmsr/libsrc/dsrxmld.cc index 23658cec..55c96900 100644 --- a/dcmsr/libsrc/dsrxmld.cc +++ b/dcmsr/libsrc/dsrxmld.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2003-2014, OFFIS e.V. + * Copyright (C) 2003-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -684,11 +684,24 @@ DSRTypes::E_RelationshipType DSRXMLDocument::getRelationshipTypeFromNode(const D void DSRXMLDocument::printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const { + /* report warning message */ OFString tmpString; DCMSR_WARN("Unexpected node '" << getFullNodePath(cursor, tmpString) << "', skipping"); } +void DSRXMLDocument::printMissingAttributeWarning(const DSRXMLCursor &cursor, + const char *name) const +{ + /* report warning message */ + if (name != NULL) + { + OFString tmpString; + DCMSR_WARN("XML attribute '" << name << "' missing/empty in " << getFullNodePath(cursor, tmpString)); + } +} + + void DSRXMLDocument::printMissingAttributeError(const DSRXMLCursor &cursor, const char *name) const { diff --git a/dcmsr/tests/CMakeLists.txt b/dcmsr/tests/CMakeLists.txt index e1ea238a..fcbf1f57 100644 --- a/dcmsr/tests/CMakeLists.txt +++ b/dcmsr/tests/CMakeLists.txt @@ -1,6 +1,6 @@ # declare executables DCMTK_ADD_EXECUTABLE(mkreport mkreport) -DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr) +DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr tsrlist) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(mkreport dcmsr dcmimage dcmimgle dcmdata oflog ofstd) diff --git a/dcmsr/tests/Makefile.dep b/dcmsr/tests/Makefile.dep index 21d5734f..c3114bf4 100644 --- a/dcmsr/tests/Makefile.dep +++ b/dcmsr/tests/Makefile.dep @@ -565,6 +565,52 @@ tsrdoctr.o: tsrdoctr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtpltn.h ../include/dcmtk/dcmsr/dsrstpl.h \ ../include/dcmtk/dcmsr/dsrnumtn.h ../include/dcmtk/dcmsr/dsrtextn.h \ ../include/dcmtk/dcmsr/dsrstrvl.h +tsrlist.o: tsrlist.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../include/dcmtk/dcmsr/dsrtlist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h tsrnumvl.o: tsrnumvl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/oftest.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ diff --git a/dcmsr/tests/Makefile.in b/dcmsr/tests/Makefile.in index 8509e6c6..fea89273 100644 --- a/dcmsr/tests/Makefile.in +++ b/dcmsr/tests/Makefile.in @@ -24,9 +24,10 @@ LIBDIRS = -L$(top_srcdir)/libcmr -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc \ -L$(oflogdir)/libsrc -L$(dcmdatadir)/libsrc -L$(dcmimgledir)/libsrc \ -L$(dcmimagedir)/libsrc LOCALLIBS = -lcmr -ldcmsr -ldcmimage -ldcmimgle -ldcmdata -loflog -lofstd $(TIFFLIBS) \ - $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(ICONVLIBS) + $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(CHARCONVLIBS) -tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o +tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o \ + tsrlist.o objs = mkreport.o $(tstobjs) progs = mkreport tests diff --git a/dcmsr/tests/tests.cc b/dcmsr/tests/tests.cc index c6880775..36fd3208 100644 --- a/dcmsr/tests/tests.cc +++ b/dcmsr/tests/tests.cc @@ -23,6 +23,8 @@ #include "dcmtk/ofstd/oftest.h" +OFTEST_REGISTER(dcmsr_addItems); +OFTEST_REGISTER(dcmsr_getItems); OFTEST_REGISTER(dcmsr_addTreeNode_1); OFTEST_REGISTER(dcmsr_addTreeNode_2); OFTEST_REGISTER(dcmsr_addTreeNode_3); diff --git a/dcmsr/tests/tsrlist.cc b/dcmsr/tests/tsrlist.cc new file mode 100644 index 00000000..499ce1c3 --- /dev/null +++ b/dcmsr/tests/tsrlist.cc @@ -0,0 +1,68 @@ +/* + * + * Copyright (C) 2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsr + * + * Author: Joerg Riesmeier + * + * Purpose: + * test program for class DSRListOfItems + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftest.h" + +#include "dcmtk/dcmsr/dsrtlist.h" + + +OFTEST(dcmsr_addItems) +{ + // disable test case when building shared libraries because of linker errors +#ifndef DCMTK_SHARED + /* prepare test data */ + OFVector vec; + for (Uint16 i = 0; i < 10; ++i) + vec.push_back(i); + /* add data to list */ + DSRListOfItems lst; + lst.addItems(vec); + /* and check result */ + OFCHECK_EQUAL(lst.getNumberOfItems(), 10); + for (Uint16 j = 0; j < 10; ++j) + OFCHECK_EQUAL(lst.getItem(j + 1), j); + OFCHECK(lst.isElement(7)); + OFCHECK(!lst.isElement(10)); +#endif +} + + +OFTEST(dcmsr_getItems) +{ + // disable test case when building shared libraries because of linker errors +#ifndef DCMTK_SHARED + DSRListOfItems lst; + /* add data to list */ + for (Uint16 i = 0; i < 10; ++i) + lst.addItem(i); + /* and check result */ + OFCHECK_EQUAL(lst.getNumberOfItems(), 10); + OFVector vec; + OFCHECK(lst.getItems(vec).good()); + OFCHECK_EQUAL(vec.size(), 10); + for (Uint16 j = 0; j < 10; ++j) + OFCHECK_EQUAL(vec.at(j), j); +#endif +} diff --git a/dcmtls/docs/ciphers.txt b/dcmtls/docs/ciphers.txt index a78f4dac..c1d64bc6 100644 --- a/dcmtls/docs/ciphers.txt +++ b/dcmtls/docs/ciphers.txt @@ -92,17 +92,8 @@ policy there is a number of aspects users should be aware of. regulations. These ciphersuites can be identified by the term "EXPORT" or "EXPORT1024" in their name. - Users should be aware that the security offered by these ciphersuites is - in general lower than the security offered by unrestricted ciphersuites. - Whether or not a ciphersuite is considered "safe" for a particular - application is a matter of the local security policy, though. - - Users in Europe should be aware of the European Prestandard ENV 13608-3 - "Health informatics - Security for healthcare communication - Part 3: - Secure data channels" which requires that no TLS ciphersuite providing - less than 80 bits of symmetric effective key space or less than 768 bits - of RSA or DH asymmetric key strength may be negotiated if conformance to - ENV 13608-3 is claimed by an application. + These ciphersuites must be considered insecure. Support for these + ciphersuites has been removed from DCMTK starting in version 3.6.1. 4. Forward Secrecy Ciphersuites @@ -139,10 +130,8 @@ policy there is a number of aspects users should be aware of. The unsupported ciphersuites are documented in OpenSSL's ciphers(1) manual page and currently include: - - TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA - TLS_DH_DSS_WITH_DES_CBC_SHA - TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA - - TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA - TLS_DH_RSA_WITH_DES_CBC_SHA - TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA - TLS_DH_DSS_WITH_AES_128_CBC_SHA @@ -168,12 +157,6 @@ TLS_RSA_WITH_NULL_SHA Secure Hash : SHA-1 Note : UNENCRYPTED, NO CONFIDENTIALITY -TLS_RSA_EXPORT_WITH_RC4_40_MD5 - - Key exchange : RSA (max. 512 bit) - Encryption : RC4 with 40 bit key - Secure Hash : MD5 - TLS_RSA_WITH_RC4_128_MD5 Key exchange : RSA @@ -186,24 +169,12 @@ TLS_RSA_WITH_RC4_128_SHA Encryption : RC4 with 128 bit key Secure Hash : SHA-1 -TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 - - Key exchange : RSA (max. 512 bit) - Encryption : RC2 (CBC mode) with 40 bit key - Secure Hash : MD5 - TLS_RSA_WITH_IDEA_CBC_SHA Key exchange : RSA Encryption : IDEA (CBC mode, 128 bit key) Secure Hash : SHA-1 -TLS_RSA_EXPORT_WITH_DES40_CBC_SHA - - Key exchange : RSA (max. 512 bit) - Encryption : DES (CBC mode) with 40 bit key - Secure Hash : SHA-1 - TLS_RSA_WITH_DES_CBC_SHA Key exchange : RSA @@ -216,13 +187,6 @@ TLS_RSA_WITH_3DES_EDE_CBC_SHA Encryption : 3DES (EDE CBC mode) with 168 bit key Secure Hash : SHA-1 -TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA - - Key exchange : Diffie-Hellman (max. 512 bit) with DSS certificate signature - Encryption : DES (CBC mode) with 40 bit key - Secure Hash : SHA-1 - Note : not supported by OpenSSL - TLS_DH_DSS_WITH_DES_CBC_SHA Key exchange : Diffie-Hellman with DSS certificate signature @@ -237,13 +201,6 @@ TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA Secure Hash : SHA-1 Note : not supported by OpenSSL -TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA - - Key exchange : Diffie-Hellman (max. 512 bit) with RSA certificate signature - Encryption : DES (CBC mode) with 40 bit key - Secure Hash : SHA-1 - Note : not supported by OpenSSL - TLS_DH_RSA_WITH_DES_CBC_SHA Key exchange : Diffie-Hellman with RSA certificate signature @@ -258,13 +215,6 @@ TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA Secure Hash : SHA-1 Note : not supported by OpenSSL -TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA - - Key exchange : Ephemeral Diffie-Hellman (max. 512 bit) with DSS certificate signature - Encryption : DES (CBC mode) with 40 bit key - Secure Hash : SHA-1 - Note : provides forward secrecy - TLS_DHE_DSS_WITH_DES_CBC_SHA Key exchange : Ephemeral Diffie-Hellman with DSS certificate signature @@ -279,13 +229,6 @@ TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA Secure Hash : SHA-1 Note : provides forward secrecy -TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA - - Key exchange : Ephemeral Diffie-Hellman (max. 512 bit) with RSA certificate signature - Encryption : DES (CBC mode) with 40 bit key - Secure Hash : SHA-1 - Note : provides forward secrecy - TLS_DHE_RSA_WITH_DES_CBC_SHA Key exchange : Ephemeral Diffie-Hellman with RSA certificate signature @@ -300,13 +243,6 @@ TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA Secure Hash : SHA-1 Note : provides forward secrecy -TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 - - Key exchange : Anonymous Diffie-Hellman (max. 512 bit), no signatures - Encryption : RC4 with 40 bit key - Secure Hash : MD5 - Note : anonymous ciphersuite, susceptible to man-in-the-middle attacks - TLS_DH_anon_WITH_RC4_128_MD5 Key exchange : Anonymous Diffie-Hellman, no signatures @@ -314,13 +250,6 @@ TLS_DH_anon_WITH_RC4_128_MD5 Secure Hash : MD5 Note : anonymous ciphersuite, susceptible to man-in-the-middle attacks -TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA - - Key exchange : Anonymous Diffie-Hellman (max. 512 bit), no signatures - Encryption : DES (CBC mode) with 40 bit key - Secure Hash : SHA-1 - Note : anonymous ciphersuite, susceptible to man-in-the-middle attacks - TLS_DH_anon_WITH_DES_CBC_SHA Key exchange : Anonymous Diffie-Hellman, no signatures @@ -335,37 +264,10 @@ TLS_DH_anon_WITH_3DES_EDE_CBC_SHA Secure Hash : SHA-1 Note : anonymous ciphersuite, susceptible to man-in-the-middle attacks - =============================================================== TLS Ciphersuites from draft-ietf-tls-56-bit-ciphersuites-00.txt =============================================================== -TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA - - Key exchange : RSA (max. 1024 bit) - Encryption : DES (CBC mode) with 56 bit key - Secure Hash : SHA-1 - -TLS_RSA_EXPORT1024_WITH_RC4_56_SHA - - Key exchange : RSA (max. 1024 bit) - Encryption : RC4 with 56 bit key - Secure Hash : SHA-1 - -TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA - - Key exchange : Ephemeral Diffie-Hellman (max. 1024 bit) with DSS certificate signature - Encryption : DES (CBC mode) with 56 bit key - Secure Hash : SHA-1 - Note : provides forward secrecy - -TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA - - Key exchange : Ephemeral Diffie-Hellman (max. 1024 bit) with DSS certificate signature - Encryption : RC4 with 56 bit key - Secure Hash : SHA-1 - Note : provides forward secrecy - TLS_DHE_DSS_WITH_RC4_128_SHA Key exchange : Ephemeral Diffie-Hellman with DSS certificate signature @@ -373,24 +275,6 @@ TLS_DHE_DSS_WITH_RC4_128_SHA Secure Hash : SHA-1 Note : provides forward secrecy - -=================================================================== -Additional Ciphersuites only available with OpenSSL 0.9.7 or newer. -=================================================================== - -TLS_RSA_EXPORT_WITH_RC4_56_MD5 - - Key exchange : RSA (max. 512 bit) - Encryption : RC4 with 56 bit key - Secure Hash : MD5 - -TLS_RSA_EXPORT_WITH_RC2_CBC_56_MD5 - - Key exchange : RSA (max. 512 bit) - Encryption : RC2 (CBC mode) with 56 bit key - Secure Hash : MD5 - - ========================================================================== AES Ciphersuites from RFC3268. Only available with OpenSSL 0.9.7 or newer. ========================================================================== diff --git a/dcmtls/include/dcmtk/dcmtls/tlsscu.h b/dcmtls/include/dcmtk/dcmtls/tlsscu.h index d9ba3cf0..0b8eefa0 100644 --- a/dcmtls/include/dcmtk/dcmtls/tlsscu.h +++ b/dcmtls/include/dcmtk/dcmtls/tlsscu.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2010-2013, OFFIS e.V. + * Copyright (C) 2010-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -35,6 +35,7 @@ * class is derived from the general DcmSCU class and just adds the corresponding TLS * capabilities. * @warning This class is EXPERIMENTAL. Be careful to use it in production environment. + * API changes in the future are possible and likely to happen. */ class DCMTK_DCMTLS_EXPORT DcmTLSSCU : public DcmSCU { @@ -46,9 +47,9 @@ public: DcmTLSSCU(); /** Initialize SCU with connection peer information - * @param peerHost [in] The hostname or IP of the host to talk to - * @param peerAETtitle [in] AETitle of peer host to be used - * @param portNum [in] TCP/IP port number to talk to + * @param peerHost The hostname or IP of the host to talk to + * @param peerAETitle AETitle of peer host to be used + * @param portNum TCP/IP port number to talk to */ DcmTLSSCU(const OFString& peerHost, const OFString& peerAETitle, @@ -58,44 +59,45 @@ public: */ virtual ~DcmTLSSCU(); - /** Initialize network, i.e. prepare for association negotiation. + /** Initialize network, i.e.\ prepare for association negotiation * @return EC_Normal if initialization was successful, otherwise error code */ virtual OFCondition initNetwork(); - /** Negotiate association by using presentation contexts and parameters - * as defined by earlier function calls. - * @return EC_Normal if negotiation was successful, otherwise error code + /** Negotiates association by using presentation contexts and parameters + * as defined by earlier function calls + * @return EC_Normal if negotiation was successful, otherwise error code. */ virtual OFCondition negotiateAssociation(); /** Closes the association of this SCU * @deprecated The use of this method is deprecated. Please use * DcmSCU::releaseAssociation() or DcmSCU::abortAssociation() instead. - * @param closeType [in] Define whether to release or abort the association + * @param closeType Define whether to release or abort the association */ virtual void closeAssociation(const DcmCloseAssociationType closeType); - /** TODO: Not documented yet - * @param str [in] Not documented yet + /** Add file with trusted certificate (used if authentication is enabled) + * @param str Filename */ virtual void addTrustedCertFile(const OFString& str); - /** TODO: Not documented yet - * @param certDir [in] Not documented yet + /** Add directory to list of directories containing trusted certificates (used + * if authentication is enabled) + * @param certDir Not documented yet */ virtual void addTrustedCertDir(const OFString& certDir); - /** TODO: Not documented yet - * @param privateKey [in] File with private key to authenticate with - * @param certFile [in] File with certificate to authenticate with - * @param passphrase [in] Password to access key. NULL asks user on console. - * "" will send empty password. Default is asking the - * user to enter password. - * @param privKeyFormat [in] Format of private key parameter. Default is - * SSL_FILETYPE_PEM. - * @param certFormat [in] Format of certificate file parameter. Default is - * SSL_FILETYPE_PEM. + /** Turn on authentication for TLS + * @param privateKey File with private key to authenticate with + * @param certFile File with certificate to authenticate with + * @param passphrase Password to access key. NULL asks user on console. + * "" will send empty password. Default is asking the + * user to enter password. + * @param privKeyFormat Format of private key parameter. Default is + * SSL_FILETYPE_PEM. + * @param certFormat Format of certificate file parameter. Default is + * SSL_FILETYPE_PEM. */ virtual void enableAuthentication(const OFString& privateKey, const OFString& certFile, @@ -103,40 +105,50 @@ public: const int privKeyFormat = SSL_FILETYPE_PEM, const int certFormat = SSL_FILETYPE_PEM); - /** Disables authentication. However, DcmTLSSCU will try to establish secured connection - * in terms of encrypting data. Default is that authentication is disabled. + /** Disables authentication. However, DcmTLSSCU will try to establish secured + * connection in terms of encrypting data. Default is that authentication is disabled. */ virtual void disableAuthentication(); - /** TODO: Not documented yet - * @param cs [in] TODO: Not documented yet + /** Add ciphersuite to list of supported ciphersuites + * @param cs The ciphersuite to add */ virtual void addCiphersuite(const OFString& cs); - /** TODO: Not documented yet - * @param seedFile [in] TODO: Not documented yet + /** Set file to be used as random seed for initializing the Pseudo Random + * Number Generator (PRNG) + * @param seedFile The seed file to be used. */ virtual void setReadSeedFile(const OFString& seedFile); - /** TODO: Not documented yet - * @param seedFile [in] TODO: Not documented yet + /** Set file to be use to store the updated random seed to store the updated + * random seed from the Pseudo Random Number Generator (PRNG). + * @param seedFile The seed file to be used for writing back seed info */ virtual void setWriteSeedFile(const OFString& seedFile); /** Set whether peer's certificate must be there, only is checked if there or is ignored - * @param cert [in] peer certificate verification mode. The following values are permitted: - * DCV_requireCertificate, DCV_checkCertificate, DCV_ignoreCertificate + * @param cert Peer certificate verification mode. The following values are permitted: + * DCV_requireCertificate, DCV_checkCertificate, DCV_ignoreCertificate */ virtual void setPeerCertVerification(const DcmCertificateVerification cert); - /** Not documented yet - * @param dhParam [in] TODO: Not documented yet + /** Set Diffie-Hellman parameters + * @param dhParam Diffie-Hellman parameters to be used. */ virtual void setDHParam(const OFString& dhParam); /** Returns OFTrue if authentication is enabled - * @param ... TODO: Not documented yet - * @return Return value OFTrue + * @param privKeyFile The file containing the private key used + * @param certFile The file containing the certificate used + * @param passphrase The passphrase used for unlocking the private key + * file. If NULL, password is asked from STDIN. If empty string (""), + * password is sent empty. All others values are sent as given. + * @param privKeyFormat Format of the private key in privKeyFile, see + * documentation of m_privateKeyFileFormat. + * @param certFormat The certificate format of certificate in certFile. + * See documentation of m_certKeyFileFormat. + * @return Returns OFTrue if authentication is enabled, OFFalse otherwise */ virtual OFBool getAuthenticationParams(OFString& privKeyFile, OFString& certFile, @@ -144,33 +156,36 @@ public: int& privKeyFormat, int& certFormat) const; - /** TODO: Not documented yet - * @param files [out] TODO: Not documented yet + /** Get files considered for trusted certificates. + * @param files The file names that are considered as trusted + * certificates */ virtual void getTrustedCertFiles(OFList& files /*out*/) const; - /** TODO: Not documented yet - * @param trustedDirs [out] TODO: Not documented yet + /** Get directories containing considered to contain trusted certificates. + * @param trustedDirs directories consiered to contain trusted certificates. */ virtual void getTrustedCertDirs(OFList& trustedDirs /*out*/) const; - /** TODO: Not documented yet - * @return TODO: Not documented yet + /** Get ciphersuites set to be supported + * @return Ciphersuites set to be supported */ virtual OFString getCiphersuites() const; - /** TODO: Not documented yet - * @return TODO: Not documented yet + /** Get random seed file used for initializing Pseudo Random Number + * Generator (PRNG) + * @return Random seed file used for reading */ virtual OFString getReadSeedFile() const; - /** TODO: Not documented yet - * @return TODO: Not documented yet + /** Get random seed file the PRNG should use to store back updated random + * seed information + * @return Get random seed file used for writing back updated seed */ virtual OFString getWriteSeedFile() const; - /** TODO: Not documented yet - * @return TODO: Not documented yet + /** Get Diffie-Hellman parameters set to be used + * @return Diffie-Hellman parameters set to be used */ virtual OFString getDHParam() const; @@ -183,7 +198,7 @@ private: /** Private undefined operator=. Shall never be called. * @param src Source object - * @return Reference to this + * @return Reference to this object */ DcmTLSSCU &operator=(const DcmTLSSCU &src); @@ -211,21 +226,21 @@ private: /// Might be either "SSL_FILETYPE_PEM" (default) or "SSL_FILETYPE_ASN1" int m_certKeyFileFormat; - /// Password used for unlocking the private key file. If NULL, password is asked from - /// STDIN. If empty string (""), password is sent empty. All others values are sent as - /// given. + /// char* m_passwd; - /// String containing all cipher suites being (additionally? TODO) configured + /// String containing all cipher suites being configured to be used OFString m_ciphersuites; - /// TODO: Not documented yet + /// Random seed file used for initializing Pseudo Random Number + /// Generator (PRNG) OFString m_readSeedFile; - /// TODO: Not documented yet + /// Random seed file used for writing updated seed from Pseudo Random Number + /// Generator back to a file OFString m_writeSeedFile; - /// Denotes how certificates are handled, i.e. whether they are required, validated or + /// Denotes how certificates are handled, i.e.\ whether they are required, validated or /// only validated if present DcmCertificateVerification m_certVerification; diff --git a/dcmtls/libsrc/Makefile.dep b/dcmtls/libsrc/Makefile.dep index c75bd804..89f4e97e 100644 --- a/dcmtls/libsrc/Makefile.dep +++ b/dcmtls/libsrc/Makefile.dep @@ -45,6 +45,7 @@ tlslayer.o: tlslayer.cc ../../config/include/dcmtk/config/osconfig.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/dcmtls/tlstrans.h \ ../../dcmnet/include/dcmtk/dcmnet/dcmtrans.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../dcmnet/include/dcmtk/dcmnet/dicom.h \ ../../dcmnet/include/dcmtk/dcmnet/cond.h \ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ @@ -199,10 +200,12 @@ tlstrans.o: tlstrans.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../include/dcmtk/dcmtls/tlstrans.h \ ../../dcmnet/include/dcmtk/dcmnet/dcmtrans.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../../dcmnet/include/dcmtk/dcmnet/dcmlayer.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../dcmnet/include/dcmtk/dcmnet/dcmlayer.h \ ../../dcmnet/include/dcmtk/dcmnet/dndefine.h \ ../include/dcmtk/dcmtls/tlsdefin.h ../include/dcmtk/dcmtls/tlslayer.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ @@ -231,7 +234,6 @@ tlstrans.o: tlstrans.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ - ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ ../../ofstd/include/dcmtk/ofstd/ofstd.h \ ../../ofstd/include/dcmtk/ofstd/oftraits.h \ @@ -249,7 +251,6 @@ tlstrans.o: tlstrans.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ - ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ diff --git a/dcmtls/libsrc/tlslayer.cc b/dcmtls/libsrc/tlslayer.cc index 5512bcb2..ddb086f6 100644 --- a/dcmtls/libsrc/tlslayer.cc +++ b/dcmtls/libsrc/tlslayer.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2000-2015, OFFIS e.V. + * Copyright (C) 2000-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -48,6 +48,11 @@ END_EXTERN_C #define DCMTK_SSL_CTX_get0_param(A) A->param; #endif +#if OPENSSL_VERSION_NUMBER < 0x10100000L +#define SSL_CTX_get_cert_store(ctx) ctx->cert_store +#define EVP_PKEY_base_id(key) EVP_PKEY_type(key->type) +#endif + extern "C" int DcmTLSTransportLayer_certificateValidationCallback(int ok, X509_STORE_CTX *storeContext); OFLogger DCM_dcmtlsLogger = OFLog::getLogger("dcmtk.dcmtls"); @@ -89,43 +94,26 @@ static const DcmCipherSuiteList cipherSuiteList[] = { {"TLS_RSA_WITH_NULL_MD5", SSL3_TXT_RSA_NULL_MD5}, {"TLS_RSA_WITH_NULL_SHA", SSL3_TXT_RSA_NULL_SHA}, - {"TLS_RSA_EXPORT_WITH_RC4_40_MD5", SSL3_TXT_RSA_RC4_40_MD5}, {"TLS_RSA_WITH_RC4_128_MD5", SSL3_TXT_RSA_RC4_128_MD5}, {"TLS_RSA_WITH_RC4_128_SHA", SSL3_TXT_RSA_RC4_128_SHA}, - {"TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5", SSL3_TXT_RSA_RC2_40_MD5}, {"TLS_RSA_WITH_IDEA_CBC_SHA", SSL3_TXT_RSA_IDEA_128_SHA}, - {"TLS_RSA_EXPORT_WITH_DES40_CBC_SHA", SSL3_TXT_RSA_DES_40_CBC_SHA}, {"TLS_RSA_WITH_DES_CBC_SHA", SSL3_TXT_RSA_DES_64_CBC_SHA}, {"TLS_RSA_WITH_3DES_EDE_CBC_SHA", SSL3_TXT_RSA_DES_192_CBC3_SHA}, - {"TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", SSL3_TXT_DH_DSS_DES_40_CBC_SHA}, {"TLS_DH_DSS_WITH_DES_CBC_SHA", SSL3_TXT_DH_DSS_DES_64_CBC_SHA}, {"TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA", SSL3_TXT_DH_DSS_DES_192_CBC3_SHA}, - {"TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", SSL3_TXT_DH_RSA_DES_40_CBC_SHA}, {"TLS_DH_RSA_WITH_DES_CBC_SHA", SSL3_TXT_DH_RSA_DES_64_CBC_SHA}, {"TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA", SSL3_TXT_DH_RSA_DES_192_CBC3_SHA}, - {"TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", SSL3_TXT_EDH_DSS_DES_40_CBC_SHA}, {"TLS_DHE_DSS_WITH_DES_CBC_SHA", SSL3_TXT_EDH_DSS_DES_64_CBC_SHA}, {"TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA", SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA}, - {"TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", SSL3_TXT_EDH_RSA_DES_40_CBC_SHA}, {"TLS_DHE_RSA_WITH_DES_CBC_SHA", SSL3_TXT_EDH_RSA_DES_64_CBC_SHA}, {"TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA}, - {"TLS_DH_anon_EXPORT_WITH_RC4_40_MD5", SSL3_TXT_ADH_RC4_40_MD5}, {"TLS_DH_anon_WITH_RC4_128_MD5", SSL3_TXT_ADH_RC4_128_MD5}, - {"TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA", SSL3_TXT_ADH_DES_40_CBC_SHA}, {"TLS_DH_anon_WITH_DES_CBC_SHA", SSL3_TXT_ADH_DES_64_CBC_SHA}, {"TLS_DH_anon_WITH_3DES_EDE_CBC_SHA", SSL3_TXT_ADH_DES_192_CBC_SHA}, - {"TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA", TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA}, - {"TLS_RSA_EXPORT1024_WITH_RC4_56_SHA", TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA}, - {"TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA", TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA}, - {"TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA", TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA}, {"TLS_DHE_DSS_WITH_RC4_128_SHA", TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA} #if OPENSSL_VERSION_NUMBER >= 0x0090700fL - // cipersuites added in OpenSSL 0.9.7 , - {"TLS_RSA_EXPORT_WITH_RC4_56_MD5", TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5}, - {"TLS_RSA_EXPORT_WITH_RC2_CBC_56_MD5", TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5}, - /* AES ciphersuites from RFC3268 */ {"TLS_RSA_WITH_AES_128_CBC_SHA", TLS1_TXT_RSA_WITH_AES_128_SHA}, {"TLS_DH_DSS_WITH_AES_128_CBC_SHA", TLS1_TXT_DH_DSS_WITH_AES_128_SHA}, @@ -184,10 +172,11 @@ DcmTLSTransportLayer::DcmTLSTransportLayer(int networkRole, const char *randFile // but the API has been available at least since 0.9.5. SSL_library_init(); SSL_load_error_strings(); - SSLeay_add_all_algorithms(); + OpenSSL_add_all_algorithms(); seedPRNG(randFile); } +#if OPENSSL_VERSION_NUMBER < 0x10100000L if (networkRole == DICOM_APPLICATION_ACCEPTOR) { transportLayerContext = SSL_CTX_new(TLSv1_server_method()); @@ -196,6 +185,21 @@ DcmTLSTransportLayer::DcmTLSTransportLayer(int networkRole, const char *randFile } else { transportLayerContext = SSL_CTX_new(TLSv1_method()); } +#else + // starting with OpenSSL 1.1.0, a new TLS_method() is offered + // that automatically selects the highest version of the TLS + // protocol supported by client and server. + // The previous TLSv1_methods are now deprecated and generate + // a warning. + if (networkRole == DICOM_APPLICATION_ACCEPTOR) + { + transportLayerContext = SSL_CTX_new(TLS_server_method()); + } else if (networkRole == DICOM_APPLICATION_REQUESTOR) { + transportLayerContext = SSL_CTX_new(TLS_client_method()); + } else { + transportLayerContext = SSL_CTX_new(TLS_method()); + } +#endif #ifdef DEBUG if (transportLayerContext == NULL) @@ -280,7 +284,12 @@ DcmTransportLayerStatus DcmTLSTransportLayer::setCipherSuites(const char *suites { if (transportLayerContext && suites) { - if (!SSL_CTX_set_cipher_list(transportLayerContext, suites)) return TCS_tlsError; + if (!SSL_CTX_set_cipher_list(transportLayerContext, suites)) + { + const char *err = ERR_reason_error_string(ERR_peek_error()); + if (err) DCMTLS_ERROR("OpenSSL error: " << err); + return TCS_tlsError; + } } else return TCS_illegalCall; return TCS_ok; } @@ -295,7 +304,12 @@ DcmTransportLayerStatus DcmTLSTransportLayer::setPrivateKeyFile(const char *file /* fileType should be SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM */ if (transportLayerContext) { - if (0 >= SSL_CTX_use_PrivateKey_file(transportLayerContext, fileName, fileType)) return TCS_tlsError; + if (0 >= SSL_CTX_use_PrivateKey_file(transportLayerContext, fileName, fileType)) + { + const char *err = ERR_reason_error_string(ERR_peek_error()); + if (err) DCMTLS_ERROR("OpenSSL error: " << err); + return TCS_tlsError; + } } else return TCS_illegalCall; return TCS_ok; } @@ -305,7 +319,12 @@ DcmTransportLayerStatus DcmTLSTransportLayer::setCertificateFile(const char *fil /* fileType should be SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM */ if (transportLayerContext) { - if (0 >= SSL_CTX_use_certificate_file(transportLayerContext, fileName, fileType)) return TCS_tlsError; + if (0 >= SSL_CTX_use_certificate_file(transportLayerContext, fileName, fileType)) + { + const char *err = ERR_reason_error_string(ERR_peek_error()); + if (err) DCMTLS_ERROR("OpenSSL error: " << err); + return TCS_tlsError; + } } else return TCS_illegalCall; return TCS_ok; } @@ -330,9 +349,19 @@ DcmTransportLayerStatus DcmTLSTransportLayer::addTrustedCertificateFile(const ch /* fileType should be SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM */ if (transportLayerContext) { - X509_LOOKUP *x509_lookup = X509_STORE_add_lookup(transportLayerContext->cert_store, X509_LOOKUP_file()); - if (x509_lookup == NULL) return TCS_tlsError; - if (! X509_LOOKUP_load_file(x509_lookup, fileName, fileType)) return TCS_tlsError; + X509_LOOKUP *x509_lookup = X509_STORE_add_lookup(SSL_CTX_get_cert_store(transportLayerContext), X509_LOOKUP_file()); + if (x509_lookup == NULL) + { + const char *err = ERR_reason_error_string(ERR_peek_error()); + if (err) DCMTLS_ERROR("OpenSSL error: " << err); + return TCS_tlsError; + } + if (! X509_LOOKUP_load_file(x509_lookup, fileName, fileType)) + { + const char *err = ERR_reason_error_string(ERR_peek_error()); + if (err) DCMTLS_ERROR("OpenSSL error: " << err); + return TCS_tlsError; + } } else return TCS_illegalCall; return TCS_ok; } @@ -342,9 +371,19 @@ DcmTransportLayerStatus DcmTLSTransportLayer::addTrustedCertificateDir(const cha /* fileType should be SSL_FILETYPE_ASN1 or SSL_FILETYPE_PEM */ if (transportLayerContext) { - X509_LOOKUP *x509_lookup = X509_STORE_add_lookup(transportLayerContext->cert_store, X509_LOOKUP_hash_dir()); - if (x509_lookup == NULL) return TCS_tlsError; - if (! X509_LOOKUP_add_dir(x509_lookup, pathName, fileType)) return TCS_tlsError; + X509_LOOKUP *x509_lookup = X509_STORE_add_lookup(SSL_CTX_get_cert_store(transportLayerContext), X509_LOOKUP_hash_dir()); + if (x509_lookup == NULL) + { + const char *err = ERR_reason_error_string(ERR_peek_error()); + if (err) DCMTLS_ERROR("OpenSSL error: " << err); + return TCS_tlsError; + } + if (! X509_LOOKUP_add_dir(x509_lookup, pathName, fileType)) + { + const char *err = ERR_reason_error_string(ERR_peek_error()); + if (err) DCMTLS_ERROR("OpenSSL error: " << err); + return TCS_tlsError; + } } else return TCS_illegalCall; return TCS_ok; } @@ -464,7 +503,7 @@ OFString DcmTLSTransportLayer::dumpX509Certificate(X509 *peerCertificate) EVP_PKEY *pubkey = X509_get_pubkey(peerCertificate); // creates copy of public key if (pubkey) { - switch (EVP_PKEY_type(pubkey->type)) + switch (EVP_PKEY_base_id(pubkey)) { case EVP_PKEY_RSA: certPubKeyType = "RSA"; @@ -484,11 +523,11 @@ OFString DcmTLSTransportLayer::dumpX509Certificate(X509 *peerCertificate) } OFOStringStream out; out << "X.509v" << certVersion << " Certificate" << OFendl - << " Subject : " << certSubjectName << OFendl - << " Issued by : " << certIssuerName << OFendl - << " Serial no. : " << certSerialNumber << OFendl - << " Validity : not before " << certValidNotBefore << ", not after " << certValidNotAfter << OFendl - << " Public key : " << certPubKeyType << ", " << certPubKeyBits << " bits" << OFendl << OFStringStream_ends; + << " Subject : " << certSubjectName << OFendl + << " Issued by : " << certIssuerName << OFendl + << " Serial no. : " << certSerialNumber << OFendl + << " Validity : not before " << certValidNotBefore << ", not after " << certValidNotAfter << OFendl + << " Public key : " << certPubKeyType << ", " << certPubKeyBits << " bits" << OFStringStream_ends; OFSTRINGSTREAM_GETOFSTRING(out, ret) return ret; } else { diff --git a/dcmtls/libsrc/tlstrans.cc b/dcmtls/libsrc/tlstrans.cc index 10f28035..1fd695a6 100644 --- a/dcmtls/libsrc/tlstrans.cc +++ b/dcmtls/libsrc/tlstrans.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1998-2010, OFFIS e.V. + * Copyright (C) 1998-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -296,19 +296,19 @@ OFString& DcmTLSConnection::dumpConnectionParameters(OFString& str) if (tlsConnection == NULL) { // This should never happen (famous last words) - str = "Transport connection: TLS/SSL over TCP/IP\n Error: No Connection\n"; + str = "Transport connection: TLS/SSL over TCP/IP\n Error: No Connection"; return str; } X509 *peerCert = SSL_get_peer_certificate(tlsConnection); OFOStringStream stream; stream << "Transport connection: TLS/SSL over TCP/IP" << OFendl - << " Protocol: " << SSL_get_version(tlsConnection) << OFendl - << " Ciphersuite: " << SSL_CIPHER_get_name(SSL_get_current_cipher(tlsConnection)) + << " Protocol : " << SSL_get_version(tlsConnection) << OFendl + << " Ciphersuite : " << SSL_CIPHER_get_name(SSL_get_current_cipher(tlsConnection)) << ", version: " << SSL_CIPHER_get_version(SSL_get_current_cipher(tlsConnection)) << ", encryption: " << SSL_CIPHER_get_bits(SSL_get_current_cipher(tlsConnection), NULL) << " bits" << OFendl - << DcmTLSTransportLayer::dumpX509Certificate(peerCert) << OFendl; - // out << "Certificate verification: " << X509_verify_cert_error_string(SSL_get_verify_result(tlsConnection)) << OFendl; + << DcmTLSTransportLayer::dumpX509Certificate(peerCert); + // stream << OFendl << "Certificate verification: " << X509_verify_cert_error_string(SSL_get_verify_result(tlsConnection)); X509_free(peerCert); stream << OFStringStream_ends; OFSTRINGSTREAM_GETSTR(stream, res) diff --git a/dcmtls/tests/dcmtk_ca.pl b/dcmtls/tests/dcmtk_ca.pl index e688fa13..6b1de9dd 100755 --- a/dcmtls/tests/dcmtk_ca.pl +++ b/dcmtls/tests/dcmtk_ca.pl @@ -1,6 +1,6 @@ -#!/usr/local/bin/perl +#!/usr/bin/perl # -# Copyright (C) 1998-2010, OFFIS e.V. +# Copyright (C) 1998-2016, OFFIS e.V. # All rights reserved. See COPYRIGHT file for details. # # This software and supporting documentation were developed by @@ -11,7 +11,7 @@ # D-26121 Oldenburg, Germany # # -# Module: dcmpstat +# Module: dcmtls # # Author: Marco Eichelberg # @@ -75,15 +75,15 @@ usage: dcmtk_ca.pl command [options] arguments newca [options] directory generate a new Certification Authority; directory must not yet exist. -type rsa|dsa type of CA certificate (default:rsa) - -days days validity of CA certificate (365) - -bits bits bits in CA key (default: 2048) + -days days validity of CA certificate (730) + -bits bits bits in CA key (default: 4096) mkcert [options] ca_dir certfile keyfile generate a new key pair and use the Certification Authority in ca_dir to certify the public key; write certificate to certfile and the private key to keyfile. -type rsa|dsa type of certificate (default:rsa) - -days days validity of certificate (365) - -bits bits bits in private key (default: 1024) + -days days validity of certificate (730) + -bits bits bits in private key (default: 2048) -des yes|no encrypt private key (default: yes) -pkcs12 filename export certificate to PKCS#12 -pkcs12name name PKCS#12 symbolic name @@ -102,7 +102,7 @@ sub createNewCA local($days) = $options{'-days'}; if ($days ne '') { $days = "-days $days"; } local($bits) = $options{'-bits'}; - if ($bits == 0) { $bits = 2048; } + if ($bits == 0) { $bits = 4096; } local($type) = $options{'-type'}; local($keytype); if ($type eq 'dsa') @@ -154,7 +154,7 @@ sub createNewCertificate if ($days ne '') { $days = "-days $days"; } local($ca_certificate) = $options{'-cacert'}; local($bits) = $options{'-bits'}; - if ($bits == 0) { $bits = 1024; } + if ($bits == 0) { $bits = 2048; } local($type) = $options{'-type'}; local($encryption); local($des) = $options{'-des'}; @@ -253,9 +253,9 @@ default_ca = CA_default # The default ca section dir = ${ca_directory} # Where everything is kept certs = \$dir/certs # Where the issued certs are kept -crl_dir = \$dir/crl # Where the issued crl are kept +crl_dir = \$dir/crl # Where the issued crl are kept database = \$dir/index.txt # database index file. -new_certs_dir = \$dir/newcerts # default place for new certs. +new_certs_dir = \$dir/newcerts # default place for new certs. certificate = \$dir/cacert.pem # The CA certificate serial = \$dir/serial # The current serial number @@ -269,9 +269,9 @@ x509_extensions = usr_cert # The extentions to add to the cert # so this is commented out by default to leave a V1 CRL. # crl_extensions = crl_ext -default_days = 365 # how long to certify for -default_crl_days= 30 # how long before next CRL -default_md = md5 # which md to use. +default_days = 730 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = sha256 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look @@ -303,11 +303,11 @@ emailAddress = optional #################################################################### [ req ] -default_bits = 1024 +default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name attributes = req_attributes -x509_extensions = v3_ca # The extentions to add to the self signed cert +x509_extensions = v3_ca # The extentions to add to the self signed cert # Passwords for private keys if not present they will be prompted for # input_password = secret diff --git a/dcmtract/docs/dcmtract.dox b/dcmtract/docs/dcmtract.dox index 12566ff8..94d33792 100644 --- a/dcmtract/docs/dcmtract.dox +++ b/dcmtract/docs/dcmtract.dox @@ -1,6 +1,6 @@ /*! -\page mod_dcmtract dcmtract: a library for working with Tractography Results +\page mod_dcmtract dcmtract: a library for working with tractography results This module contains classes to deal with DICOM Tractography Results objects. It is able to create, load and access the contained fiber tracks and the related @@ -22,7 +22,6 @@ Module. The main class of this module is: \li \b TrcTractographyResults - \section Examples The following (complete) example shows how to load a DICOM Tractography Results diff --git a/dcmtract/include/dcmtk/dcmtract/trcstatistic.h b/dcmtract/include/dcmtk/dcmtract/trcstatistic.h index 67522210..98dab552 100755 --- a/dcmtract/include/dcmtk/dcmtract/trcstatistic.h +++ b/dcmtract/include/dcmtk/dcmtract/trcstatistic.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2016, Open Connections GmbH + * Copyright (C) 2016-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -75,20 +75,6 @@ public: */ virtual OFCondition write(DcmItem& destination); - /** Set descriptive information of statistic - * @param typeCode The type of statistic, DICOM prescribes codes from - * CID 7263 "Diffusion Tractography Measurement Types" - * @param typeModifierCode Defines the region of interest, DICOM prescribes - * code from CID 7464 "General Region of Interest Measurement - * Modifiers" - * @param unitsCode The physical units of the statistic value, DICOM - * prescribes code from CID 82 "Units of Measurement" (UCUM). - * @return EC_Normal if setting was successful, error otherwise. - */ - virtual OFCondition set(const CodeSequenceMacro& typeCode, - const CodeSequenceMacro& typeModifierCode, - const CodeSequenceMacro& unitsCode); - /** Get descriptive information of statistic * @param typeCode Returns type of statistic * @param typeModifierCode Returns region of interest @@ -105,6 +91,20 @@ public: protected: + /** Set descriptive information of statistic + * @param typeCode The type of statistic, DICOM prescribes codes from + * CID 7263 "Diffusion Tractography Measurement Types" + * @param typeModifierCode Defines the region of interest, DICOM prescribes + * code from CID 7464 "General Region of Interest Measurement + * Modifiers" + * @param unitsCode The physical units of the statistic value, DICOM + * prescribes code from CID 82 "Units of Measurement" (UCUM). + * @return EC_Normal if setting was successful, error otherwise. + */ + virtual OFCondition setCommon(const CodeSequenceMacro& typeCode, + const CodeSequenceMacro& typeModifierCode, + const CodeSequenceMacro& unitsCode); + /// Single item from Concept Name Code Sequence CodeSequenceMacro m_Type; @@ -220,6 +220,10 @@ public: CodeSequenceMacro& unitsCode, const Float32*& statisticValues, unsigned long& numValues); + + // Make sure the original virtual get() function from TrcStatistic + // stays visible + using TrcStatistic::get; }; /** Class representing a Track Set statistic, i.e. a single statistic value that @@ -312,6 +316,10 @@ public: CodeSequenceMacro& unitsCode, Float64& statisticValue); + // Make sure the original virtual get() function from TrcStatistic + // stays visible + using TrcStatistic::get; + }; diff --git a/dcmtract/include/dcmtk/dcmtract/trctractographyresults.h b/dcmtract/include/dcmtk/dcmtract/trctractographyresults.h index c2f1fc3a..f37947fb 100644 --- a/dcmtract/include/dcmtk/dcmtract/trctractographyresults.h +++ b/dcmtract/include/dcmtk/dcmtract/trctractographyresults.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2016, Open Connections GmbH + * Copyright (C) 2016-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -47,6 +47,8 @@ public: /** Create new Tractography Results object. The resulting object then can * be filled by using addTrackSet(). + * The memory of the resulting Tractography Results object has to be freed by the + * caller. * @param contentIdentification Content identification for this object * @param contentDate The date the content creation started * @param contentTime The time the content creation started @@ -122,7 +124,9 @@ public: // -------------------- loading and saving --------------------- - /** Load Tractography Results object from item file + /** Load Tractography Results object from a file. + * The memory of the resulting Tractography Results object has to be freed by the + * caller. * @param filename The file to read from * @param tractography The resulting Tractography Results object. NULL if * dataset could not be read successfully. @@ -131,7 +135,9 @@ public: static OFCondition loadFile(const OFString& filename, TrcTractographyResults*& tractography); - /** Load Tractography Results object from item object. + /** Load Tractography Results object from dataset object. + * The memory of the resulting Tractography Results object has to be freed + * by the caller. * @param dataset The dataset to read from * @param tractography The resulting Tractography Results object. NULL if * dataset could not be read successfully. diff --git a/dcmtract/libsrc/CMakeLists.txt b/dcmtract/libsrc/CMakeLists.txt index 71d1cdf8..1b35c3bd 100644 --- a/dcmtract/libsrc/CMakeLists.txt +++ b/dcmtract/libsrc/CMakeLists.txt @@ -2,4 +2,3 @@ DCMTK_ADD_LIBRARY(dcmtract trctypes trctrackset trctrack trcmeasurement trcstatistic trcmodtractresults trctractographyresults) DCMTK_TARGET_LINK_MODULES(dcmtract dcmiod dcmdata ofstd oflog) -DCMTK_TARGET_LINK_LIBRARIES(dcmtract ${ZLIB_LIBS} ${WIN32_STD_LIBRARIES}) diff --git a/dcmtract/libsrc/Makefile.dep b/dcmtract/libsrc/Makefile.dep index 16a76376..ff84b2ee 100644 --- a/dcmtract/libsrc/Makefile.dep +++ b/dcmtract/libsrc/Makefile.dep @@ -59,6 +59,8 @@ trcmeasurement.o: trcmeasurement.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -91,11 +93,9 @@ trcmeasurement.o: trcmeasurement.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -183,6 +183,8 @@ trcmodtractresults.o: trcmodtractresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -216,11 +218,9 @@ trcmodtractresults.o: trcmodtractresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -312,6 +312,8 @@ trcstatistic.o: trcstatistic.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -344,11 +346,9 @@ trcstatistic.o: trcstatistic.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -436,6 +436,8 @@ trctrack.o: trctrack.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -512,6 +514,8 @@ trctrackset.o: trctrackset.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -542,11 +546,9 @@ trctrackset.o: trctrackset.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -638,6 +640,8 @@ trctractographyresults.o: trctractographyresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -668,11 +672,9 @@ trctractographyresults.o: trctractographyresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ diff --git a/dcmtract/libsrc/trcstatistic.cc b/dcmtract/libsrc/trcstatistic.cc index 2ac4f79f..a04c8f78 100755 --- a/dcmtract/libsrc/trcstatistic.cc +++ b/dcmtract/libsrc/trcstatistic.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2016, Open Connections GmbH + * Copyright (C) 2016-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -92,9 +92,9 @@ OFCondition TrcStatistic::get(CodeSequenceMacro& typeCode, } -OFCondition TrcStatistic::set(const CodeSequenceMacro& typeCode, - const CodeSequenceMacro& typeModifierCode, - const CodeSequenceMacro& unitsCode) +OFCondition TrcStatistic::setCommon(const CodeSequenceMacro& typeCode, + const CodeSequenceMacro& typeModifierCode, + const CodeSequenceMacro& unitsCode) { OFCondition result; result = OFconst_cast(CodeSequenceMacro*, &typeCode)->check(OFTrue /* quiet */); @@ -155,7 +155,7 @@ OFCondition TrcTracksStatistic::create(const CodeSequenceMacro& typeCode, return EC_MemoryExhausted; //OFCondition result = OFstatic_cast(TrcStatistic*,statistic)->set(typeCode, typeModifierCode, unitsCode); - OFCondition result = statistic->TrcStatistic::set(typeCode, typeModifierCode, unitsCode); + OFCondition result = statistic->TrcStatistic::setCommon(typeCode, typeModifierCode, unitsCode); if (result.good()) { result = statistic->getData().putAndInsertFloat32Array(DCM_FloatingPointValues, statisticValues, numValues); @@ -231,7 +231,7 @@ OFCondition TrcTracksStatistic::set(const CodeSequenceMacro& typeCode, { return TRC_EC_InvalidStatisticData; } - OFCondition result = TrcStatistic::set(typeCode, typeModifierCode, unitsCode); + OFCondition result = TrcStatistic::setCommon(typeCode, typeModifierCode, unitsCode); if (result.good()) { result = m_Item->putAndInsertFloat32Array(DCM_FloatingPointValues, statisticValues, numValues); @@ -336,7 +336,7 @@ OFCondition TrcTrackSetStatistic::set(const CodeSequenceMacro& typeCode, const CodeSequenceMacro& unitsCode, const Float64 statisticValue) { - OFCondition result = TrcStatistic::set(typeCode, typeModifierCode, unitsCode); + OFCondition result = TrcStatistic::setCommon(typeCode, typeModifierCode, unitsCode); if (result.good()) { result = m_Item->putAndInsertFloat64(DCM_FloatingPointValue, statisticValue, 0); diff --git a/dcmtract/libsrc/trctrackset.cc b/dcmtract/libsrc/trctrackset.cc index d6988bac..8c8c4b70 100644 --- a/dcmtract/libsrc/trctrackset.cc +++ b/dcmtract/libsrc/trctrackset.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2016, Open Connections GmbH + * Copyright (C) 2016-2017, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -511,7 +511,7 @@ OFCondition TrcTrackSet::setRecommendedDisplayCIELabValue(const Uint16 L, const Uint16 a, const Uint16 b) { - DcmElement* elem = newDicomElement(DCM_RecommendedDisplayCIELabValue); + DcmElement* elem = DcmItem::newDicomElement(DCM_RecommendedDisplayCIELabValue); if (elem) { if (elem->putUint16(L, 0).good()) diff --git a/dcmwlm/apps/Makefile.in b/dcmwlm/apps/Makefile.in index 9c3b9449..491deb37 100644 --- a/dcmwlm/apps/Makefile.in +++ b/dcmwlm/apps/Makefile.in @@ -36,7 +36,7 @@ LOCALINCLUDES = $(dcmnetinc) $(dcmdatainc) $(ofloginc) $(ofstdinc) LIBDIRS = -L$(top_srcdir)/libsrc $(dcmnetlibdir) $(dcmdatalibdir) \ $(ofloglibdir) $(ofstdlibdir) LOCALLIBS = -ldcmwlm $(dcmnetlib) $(dcmdatalib) $(ofloglib) $(ofstdlib) \ - $(ZLIBLIBS) $(TCPWRAPPERLIBS) $(ICONVLIBS) + $(ZLIBLIBS) $(TCPWRAPPERLIBS) $(CHARCONVLIBS) objs = wlcefs.o wlmscpfs.o progs = wlmscpfs diff --git a/dcmwlm/docs/wlmscpfs.man b/dcmwlm/docs/wlmscpfs.man index d609c0cf..ad67a48f 100644 --- a/dcmwlm/docs/wlmscpfs.man +++ b/dcmwlm/docs/wlmscpfs.man @@ -255,10 +255,13 @@ Currently, the \b wlmscpfs application supports the following attributes as matching keys: \verbatim +(0008,0020) StudyDate +(0008,0030) StudyTime (0008,0050) AccessionNumber (0008,0090) ReferringPhysicianName (0010,0010) PatientName (0010,0020) PatientID +(0010,0021) IssuerOfPatientID (0010,0030) PatientBirthDate (0010,0040) PatientSex (0010,2297) Responsible Person diff --git a/dcmwlm/include/dcmtk/dcmwlm/wlfsim.h b/dcmwlm/include/dcmtk/dcmwlm/wlfsim.h index 649556d7..c02a1450 100644 --- a/dcmwlm/include/dcmtk/dcmwlm/wlfsim.h +++ b/dcmwlm/include/dcmtk/dcmwlm/wlfsim.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2012, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -153,6 +153,24 @@ class DCMTK_DCMWLM_EXPORT WlmFileSystemInteractionManager */ void DetermineMatchingKeyAttributeValues( DcmDataset *dataset, const char **&matchingKeyAttrValues ); + /** This function returns OFTrue if the dataset's and the search mask's values in + * attribute issuer of patient id match; otherwise OFFalse will be returned. + * @param datasetValue Value for the corresponding attribute in the dataset; might be NULL. + * @param searchMaskValue Value for the corresponding attribute in the search mask; never NULL. + * @return OFTrue if the values match, OFFalse otherwise. + */ + OFBool IssuerOfPatientIDsMatch( const char *datasetValue, const char *searchMaskValue ); + + /** This function returns OFTrue if the dataset's and the search mask's values in + * attribute study date and study time match; otherwise OFFalse will be returned. + * @param datasetDateValue Value for the corresponding attribute in the dataset; might be NULL. + * @param datasetTimeValue Value for the corresponding attribute in the dataset; might be NULL. + * @param searchMaskDateValue Value for the corresponding attribute in the search mask; might be NULL. + * @param searchMaskTimeValue Value for the corresponding attribute in the search mask; might be NULL. + * @return OFTrue if the values match, OFFalse otherwise. + */ + OFBool StudyDateTimesMatch( const char *datasetDateValue, const char *datasetTimeValue, const char *searchMaskDateValue, const char *searchMaskTimeValue ); + /** This function returns OFTrue if the dataset's and the search mask's values in * attribute scheduled station AE title match; otherwise OFFalse will be returned. * @param datasetValue Value for the corresponding attribute in the dataset; might be NULL. diff --git a/dcmwlm/include/dcmtk/dcmwlm/wltypdef.h b/dcmwlm/include/dcmtk/dcmwlm/wltypdef.h index c79ad552..c60ed7f8 100644 --- a/dcmwlm/include/dcmtk/dcmwlm/wltypdef.h +++ b/dcmwlm/include/dcmtk/dcmwlm/wltypdef.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2014, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -108,7 +108,7 @@ makeOFConditionConst(WLM_EC_DatabaseStatementConfigFilesNotExistent, OFM_dcmwlm, makeOFConditionConst(WLM_EC_CannotConnectToDataSource, OFM_dcmwlm, 5, OF_error, "Cannot connect to data source."); /// number of currently supported matching key attributes -#define NUMBER_OF_SUPPORTED_MATCHING_KEY_ATTRIBUTES 17 +#define NUMBER_OF_SUPPORTED_MATCHING_KEY_ATTRIBUTES 20 /// structure for handling arbitrary types of superior sequences in query result datasets struct DCMTK_DCMWLM_EXPORT WlmSuperiorSequenceInfoType diff --git a/dcmwlm/libsrc/Makefile.dep b/dcmwlm/libsrc/Makefile.dep index 7675948d..b6f71a53 100644 --- a/dcmwlm/libsrc/Makefile.dep +++ b/dcmwlm/libsrc/Makefile.dep @@ -228,6 +228,7 @@ wlfsim.o: wlfsim.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmatch.h \ ../include/dcmtk/dcmwlm/wltypdef.h ../include/dcmtk/dcmwlm/wldefine.h \ ../include/dcmtk/dcmwlm/wlds.h \ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ diff --git a/dcmwlm/libsrc/wlds.cc b/dcmwlm/libsrc/wlds.cc index c0c5ffef..24c37804 100644 --- a/dcmwlm/libsrc/wlds.cc +++ b/dcmwlm/libsrc/wlds.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2014, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -67,9 +67,9 @@ WlmDataSource::WlmDataSource() // Initialize member variables. identifiers = new DcmDataset(); - offendingElements = new DcmAttributeTag( DCM_OffendingElement, 0 ); - errorElements = new DcmAttributeTag( DCM_OffendingElement, 0 ); - errorComment = new DcmLongString( DCM_ErrorComment, 0 ); + offendingElements = new DcmAttributeTag( DCM_OffendingElement); + errorElements = new DcmAttributeTag( DCM_OffendingElement); + errorComment = new DcmLongString( DCM_ErrorComment); } // ---------------------------------------------------------------------------- @@ -630,6 +630,9 @@ OFBool WlmDataSource::CheckMatchingKey( const DcmElement *elem ) // DCM_AdmissionID (0038,0010) LO O 2 // DCM_RequestedProcedurePriority (0040,1003) SH O 2 // DCM_PatientBirthDate (0010,0030) DA O 2 +// DCM_IssuerOfPatientID (0010,0021) LO O 3 +// DCM_StudyDate (0008,0020) DA O 3 +// DCM_StudyTime (0008,0030) TM O 3 // As a result, the following data types have to be supported in this function: // AE, DA, TM, CS, PN, LO and SH. For the correct specification of these datatypes // 2003 DICOM standard, part 5, section 6.2, table 6.2-1. @@ -1181,6 +1184,9 @@ OFBool WlmDataSource::IsSupportedMatchingKeyAttribute( DcmElement *element, DcmS // DCM_AdmissionID (0038,0010) LO O 2 // DCM_RequestedProcedurePriority (0040,1003) SH O 2 // DCM_PatientBirthDate (0010,0030) DA O 2 +// DCM_IssuerOfPatientID (0010,0021) LO O 3 +// DCM_StudyDate (0008,0020) DA O 3 +// DCM_StudyTime (0008,0030) TM O 3 // Parameters : element - [in] Pointer to the element which shall be checked. // supSequenceElement - [in] Pointer to the superordinate sequence element of which // the currently processed element is an attribute, or NULL if @@ -1218,6 +1224,9 @@ OFBool WlmDataSource::IsSupportedMatchingKeyAttribute( DcmElement *element, DcmS elementKey == DCM_ResponsiblePerson || elementKey == DCM_ResponsiblePersonRole || elementKey == DCM_PatientID || + elementKey == DCM_IssuerOfPatientID || + elementKey == DCM_StudyDate || + elementKey == DCM_StudyTime || elementKey == DCM_AccessionNumber || elementKey == DCM_RequestedProcedureID || elementKey == DCM_ReferringPhysicianName || diff --git a/dcmwlm/libsrc/wldsfs.cc b/dcmwlm/libsrc/wldsfs.cc index 5247f5fb..ae724e69 100644 --- a/dcmwlm/libsrc/wldsfs.cc +++ b/dcmwlm/libsrc/wldsfs.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2013, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -262,9 +262,9 @@ WlmDataSourceStatusType WlmDataSourceFileSystem::StartFindRequest( const DcmData delete offendingElements; delete errorElements; delete errorComment; - offendingElements = new DcmAttributeTag( DCM_OffendingElement, 0 ); - errorElements = new DcmAttributeTag( DCM_OffendingElement, 0 ); - errorComment = new DcmLongString( DCM_ErrorComment, 0 ); + offendingElements = new DcmAttributeTag( DCM_OffendingElement); + errorElements = new DcmAttributeTag( DCM_OffendingElement); + errorComment = new DcmLongString( DCM_ErrorComment); // Initialize member variable identifiers; this variable will contain the search mask. ClearDataset( identifiers ); diff --git a/dcmwlm/libsrc/wlfsim.cc b/dcmwlm/libsrc/wlfsim.cc index 92aa07fc..3f165ad6 100644 --- a/dcmwlm/libsrc/wlfsim.cc +++ b/dcmwlm/libsrc/wlfsim.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2013, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -49,6 +49,7 @@ END_EXTERN_C #include "dcmtk/dcmdata/dcitem.h" #include "dcmtk/dcmdata/dcvrda.h" #include "dcmtk/dcmdata/dcvrtm.h" +#include "dcmtk/dcmdata/dcmatch.h" #include "dcmtk/dcmwlm/wltypdef.h" #include "dcmtk/dcmwlm/wlds.h" #include "dcmtk/dcmdata/dctk.h" @@ -783,6 +784,7 @@ OFBool WlmFileSystemInteractionManager::DatasetMatchesSearchMask( DcmDataset *da // OFFalse - The dataset does not match the search mask in the matching key attribute values. { OFBool dateTimeMatchHasBeenPerformed = OFFalse; + OFBool studyDateTimeMatchHasBeenPerformed = OFFalse; // initialize result variable OFBool matchFound = OFTrue; @@ -891,6 +893,22 @@ OFBool WlmFileSystemInteractionManager::DatasetMatchesSearchMask( DcmDataset *da matchFound = PatientsBirthDatesMatch( mkaValuesDataset[16], mkaValuesSearchMask[16] ); break; + case 17: + // matching key attribute is DCM_IssuerOfPatientID (LO, 1) + matchFound = IssuerOfPatientIDsMatch( mkaValuesDataset[17], mkaValuesSearchMask[17] ); + break; + + case 18: + case 19: + // matching key attributes are DCM_StudyDate (DA, 1) and DCM_StudyTime (TM, 1) + // only do something if a date time match has not yet been performed + if( !studyDateTimeMatchHasBeenPerformed ) + { + matchFound = StudyDateTimesMatch( mkaValuesDataset[18], mkaValuesDataset[19], mkaValuesSearchMask[18], mkaValuesSearchMask[19] ); + studyDateTimeMatchHasBeenPerformed = OFTrue; + } + break; + default: break; } @@ -947,6 +965,9 @@ void WlmFileSystemInteractionManager::DetermineMatchingKeyAttributeValues( DcmDa case 14 : tag = DCM_AdmissionID ; break; case 15 : tag = DCM_RequestedProcedurePriority ; break; case 16 : tag = DCM_PatientBirthDate ; break; + case 17 : tag = DCM_IssuerOfPatientID ; break; + case 18 : tag = DCM_StudyDate ; break; + case 19 : tag = DCM_StudyTime ; break; default: break; } @@ -1050,6 +1071,51 @@ OFBool WlmFileSystemInteractionManager::WildcardStripSpacesMatch( const char *da // ---------------------------------------------------------------------------- +OFBool WlmFileSystemInteractionManager::IssuerOfPatientIDsMatch( const char *datasetValue, const char *searchMaskValue ) +// Date : January 23, 2017 +// Author : Thorben Hasenpusch +// Task : This function returns OFTrue if the dataset's and the search mask's values in +// attribute issuer of patient id match; otherwise OFFalse will be returned. +// Parameters : datasetValue - [in] Value for the corresponding attribute in the dataset; might be NULL. +// searchMaskValue - [in] Value for the corresponding attribute in the search mask; never NULL. +// Return Value : OFTrue if the values match, OFFalse otherwise. +{ + return WildcardStripSpacesMatch( datasetValue, searchMaskValue ); +} + +OFBool WlmFileSystemInteractionManager::StudyDateTimesMatch( const char *datasetDateValue, const char *datasetTimeValue, const char *searchMaskDateValue, const char *searchMaskTimeValue ) +// Date : Februar 27, 2017 +// Author : Jan Schlamelcher +// Task : This function returns OFTrue if the dataset's and the search mask's values in +// attribute study date and study time match; otherwise OFFalse will be returned. +// Parameters : datasetDateValue - [in] Value for the corresponding attribute in the dataset; might be NULL. +// datasetTimeValue - [in] Value for the corresponding attribute in the dataset; might be NULL. +// searchMaskDateValue - [in] Value for the corresponding attribute in the search mask; might be NULL. +// searchMaskTimeValue - [in] Value for the corresponding attribute in the search mask; might be NULL. +// Return Value : OFTrue if the values match, OFFalse otherwise. +{ + if( !datasetDateValue ) + datasetDateValue = ""; + if( !datasetTimeValue ) + datasetTimeValue = ""; + if( !searchMaskDateValue ) + searchMaskDateValue = ""; + if( !searchMaskTimeValue ) + searchMaskTimeValue = ""; + const char* datasetDateValueEnd = datasetDateValue + strlen( datasetDateValue ); + const char* datasetTimeValueEnd = datasetTimeValue + strlen( datasetTimeValue ); + const char* searchMaskDateValueEnd = searchMaskDateValue + strlen( searchMaskDateValue ); + const char* searchMaskTimeValueEnd = searchMaskTimeValue + strlen( searchMaskTimeValue ); + OFStandard::trimString( datasetDateValue, datasetDateValueEnd ); + OFStandard::trimString( datasetTimeValue, datasetTimeValueEnd ); + OFStandard::trimString( searchMaskDateValue, searchMaskDateValueEnd ); + OFStandard::trimString( searchMaskTimeValue, searchMaskTimeValueEnd ); + return DcmAttributeMatching::rangeMatchingDateTime( datasetDateValue, datasetDateValueEnd - datasetDateValue, + datasetTimeValue, datasetTimeValueEnd - datasetTimeValue, + searchMaskDateValue, searchMaskDateValueEnd - searchMaskDateValue, + searchMaskTimeValue, searchMaskTimeValueEnd - searchMaskTimeValue ); +} + OFBool WlmFileSystemInteractionManager::ScheduledStationAETitlesMatch( const char *datasetValue, const char *searchMaskValue ) // Date : July 12, 2002 // Author : Thomas Wilkens diff --git a/dcmwlm/libsrc/wlmactmg.cc b/dcmwlm/libsrc/wlmactmg.cc index 8f04b037..351ccb82 100644 --- a/dcmwlm/libsrc/wlmactmg.cc +++ b/dcmwlm/libsrc/wlmactmg.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2014, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -55,7 +55,7 @@ static void FindCallback( void *callbackData, OFBool cancelled, T_DIMSE_C_FindRQ // search mask that was passed. In certain circumstances, the selected information // will be dumped to stdout. // Parameters : callbackData - [in] data for this callback function -// cancelled - [in] Specifies if we encounteres a C-CANCEL-RQ. In such a case +// cancelled - [in] Specifies if we encountered a C-CANCEL-RQ. In such a case // the search shall be cancelled. // request - [in] The original C-FIND-RQ message. // requestIdentifiers - [in] Contains the search mask. @@ -217,11 +217,11 @@ OFCondition WlmActivityManager::StartProvidingService() // read socket handle number from stdin, i.e. the anonymous pipe // to which our parent process has written the handle number. - if (ReadFile(hStdIn, buf, sizeof(buf), &bytesRead, NULL)) + if (ReadFile(hStdIn, buf, sizeof(buf) - 1, &bytesRead, NULL)) { // make sure buffer is zero terminated buf[bytesRead] = '\0'; - dcmExternalSocketHandle.set(atoi(buf)); + dcmExternalSocketHandle.set(atoi(buf)); } else { @@ -285,7 +285,7 @@ OFCondition WlmActivityManager::StartProvidingService() void WlmActivityManager::RefuseAssociation( T_ASC_Association **assoc, WlmRefuseReasonType reason ) // Date : December 10, 2001 // Author : Thomas Wilkens -// Task : This function takes care of refusing an assocation request. +// Task : This function takes care of refusing an association request. // Parameters : assoc - [in] The association (network connection to another DICOM application). // reason - [in] The reason why the association request will be refused. // Return Value : none. @@ -353,7 +353,7 @@ OFCondition WlmActivityManager::WaitForAssociation( T_ASC_Network * net ) // Author : Thomas Wilkens // Task : This function takes care of receiving, negotiating and accepting/refusing an // association request. Additionally, it handles the request the association -// requesting application transmits after a connection isd established. +// requesting application transmits after a connection is established. // Parameters : net - [in] Contains network parameters. // Return Value : Indicator which shows if function was executed successfully. { @@ -377,7 +377,7 @@ OFCondition WlmActivityManager::WaitForAssociation( T_ASC_Network * net ) // Listen to a socket for timeout seconds and wait for an association request. OFCondition cond = ASC_receiveAssociation( net, &assoc, opt_maxPDU, NULL, NULL, OFFalse, DUL_NOBLOCK, timeout ); - // just return, if timeout occured (DUL_NOASSOCIATIONREQUEST) + // just return, if timeout occurred (DUL_NOASSOCIATIONREQUEST) // or (WIN32) if dcmnet has started a child for us, to handle this // association (signaled by "DULC_FORKEDCHILD") -> return to "event loop" if ( ( cond.code() == DULC_FORKEDCHILD ) || ( cond == DUL_NOASSOCIATIONREQUEST ) ) @@ -456,7 +456,7 @@ OFCondition WlmActivityManager::WaitForAssociation( T_ASC_Network * net ) } // Condition 5: if the called application entity title is not supported - // whithin the data source we want to refuse the association request + // within the data source we want to refuse the association request dataSource->SetCalledApplicationEntityTitle( assoc->params->DULparams.calledAPTitle ); if( !dataSource->IsCalledApplicationEntityTitleSupported() ) { @@ -538,7 +538,7 @@ OFCondition WlmActivityManager::WaitForAssociation( T_ASC_Network * net ) else if( pid > 0 ) { // Fork returns a positive process id if this is the parent process. - // If this is the case, remeber the process in a table and go ahead. + // If this is the case, remember the process in a table and go ahead. AddProcessToTable( pid, assoc ); // the child will handle the association, we can drop it @@ -566,7 +566,7 @@ OFCondition WlmActivityManager::NegotiateAssociation( T_ASC_Association *assoc ) // Date : December 10, 2001 // Author : Thomas Wilkens // Task : This function negotiates a presentation context which will be used by this application -// and the other DICOM appliation that requests an association. +// and the other DICOM application that requests an association. // Parameters : assoc - [in] The association (network connection to another DICOM application). // Return Value : OFCondition value denoting success or error. { @@ -779,7 +779,7 @@ struct WlmFindContextType OFCondition WlmActivityManager::HandleFindSCP( T_ASC_Association *assoc, T_DIMSE_C_FindRQ *request, T_ASC_PresentationContextID presID ) // Date : December 10, 2001 // Author : Thomas Wilkens -// Task : This function processes a DIMSE C-FIND-RQ commmand that was +// Task : This function processes a DIMSE C-FIND-RQ command that was // received over the network connection. // Parameters : assoc - [in] The association (network connection to another DICOM application). // request - [in] The DIMSE C-FIND-RQ message that was received. @@ -800,7 +800,7 @@ OFCondition WlmActivityManager::HandleFindSCP( T_ASC_Association *assoc, T_DIMSE // Handle a C-FIND-Request on the provider side: receive the data set that represents the search mask // over the network, try to select corresponding records that match the search mask from some data source - // (this is done whithin the callback function FindCallback() that will be passed) and send corresponding + // (this is done within the callback function FindCallback() that will be passed) and send corresponding // C-FIND-RSP messages to the other DICOM application this application is connected with. In the end, // also send the C-FIND-RSP message that indicates that there are no more search results. OFCondition cond = DIMSE_findProvider( assoc, presID, request, FindCallback, &context, opt_blockMode, opt_dimse_timeout ); @@ -1038,7 +1038,7 @@ static void FindCallback( void *callbackData, OFBool cancelled, T_DIMSE_C_FindRQ // search mask that was passed. In certain circumstances, the selected information // will be dumped to stdout. // Parameters : callbackData - [in] data for this callback function -// cancelled - [in] Specifies if we encounteres a C-CANCEL-RQ. In such a case +// cancelled - [in] Specifies if we encountered a C-CANCEL-RQ. In such a case // the search shall be cancelled. // request - [in] The original C-FIND-RQ message. // requestIdentifiers - [in] Contains the search mask. diff --git a/dcmwlm/tests/Makefile.in b/dcmwlm/tests/Makefile.in index cb242e1f..a73d0880 100644 --- a/dcmwlm/tests/Makefile.in +++ b/dcmwlm/tests/Makefile.in @@ -22,7 +22,7 @@ LOCALINCLUDES = -I$(dcmnetdir)/include -I$(dcmdatadir)/include \ LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmnetdir)/libsrc -L$(dcmdatadir)/libsrc \ -L$(oflogdir)/libsrc -L$(ofstddir)/libsrc LOCALLIBS = -ldcmwlm -ldcmnet -ldcmdata -loflog -lofstd $(ZLIBLIBS) \ - $(TCPWRAPPERLIBS) $(ICONVLIBS) + $(TCPWRAPPERLIBS) $(CHARCONVLIBS) objs = wltest.o progs = wltest diff --git a/dcmwlm/tests/wltest.cc b/dcmwlm/tests/wltest.cc index 78dd7b6e..f737b47c 100644 --- a/dcmwlm/tests/wltest.cc +++ b/dcmwlm/tests/wltest.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1996-2011, OFFIS e.V. + * Copyright (C) 1996-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -109,7 +109,7 @@ addOverrideKey(DcmDataset& overrideKeys, char* s) errmsg("unknown tag: (%04x,%04x)", g, e); usage(); } - DcmElement *elem = newDicomElement(tag); + DcmElement *elem = DcmItem::newDicomElement(tag); if (elem == NULL) { errmsg("cannot create element for tag: (%04x,%04x)", g, e); usage(); diff --git a/docs/CHANGES.361 b/docs/CHANGES.361 index 2d05cde8..3c6f4bec 100644 --- a/docs/CHANGES.361 +++ b/docs/CHANGES.361 @@ -1,6 +1,4318 @@ Changes between releases are documented here. +**** Changes from 2017.02.28 (schlamelcher) + +- Updated CHANGES.361 for new development snapshot. + Affects: docs/CHANGES.361 + +- Updated DCMTK_ABI_VERSION for new development snapshot. + Affects: CMake/dcmtkPrepare.cmake + +- Updated man pages for new development snapshot. + Affects: doxygen/manpages/man1/dcm2json.1 + doxygen/manpages/man1/dcm2pdf.1 + doxygen/manpages/man1/dcm2pnm.1 + doxygen/manpages/man1/dcm2xml.1 + doxygen/manpages/man1/dcmcjpeg.1 + doxygen/manpages/man1/dcmcjpls.1 + doxygen/manpages/man1/dcmconv.1 + doxygen/manpages/man1/dcmcrle.1 + doxygen/manpages/man1/dcmdjpeg.1 + doxygen/manpages/man1/dcmdjpls.1 + doxygen/manpages/man1/dcmdrle.1 + doxygen/manpages/man1/dcmdspfn.1 + doxygen/manpages/man1/dcmdump.1 + doxygen/manpages/man1/dcmftest.1 + doxygen/manpages/man1/dcmgpdir.1 + doxygen/manpages/man1/dcmj2pnm.1 + doxygen/manpages/man1/dcml2pnm.1 + doxygen/manpages/man1/dcmmkcrv.1 + doxygen/manpages/man1/dcmmkdir.1 + doxygen/manpages/man1/dcmmklut.1 + doxygen/manpages/man1/dcmodify.1 + doxygen/manpages/man1/dcmp2pgm.1 + doxygen/manpages/man1/dcmprscp.1 + doxygen/manpages/man1/dcmprscu.1 + doxygen/manpages/man1/dcmpschk.1 + doxygen/manpages/man1/dcmpsmk.1 + doxygen/manpages/man1/dcmpsprt.1 + doxygen/manpages/man1/dcmpsrcv.1 + doxygen/manpages/man1/dcmpssnd.1 + doxygen/manpages/man1/dcmqridx.1 + doxygen/manpages/man1/dcmqrscp.1 + doxygen/manpages/man1/dcmqrti.1 + doxygen/manpages/man1/dcmquant.1 + doxygen/manpages/man1/dcmrecv.1 + doxygen/manpages/man1/dcmscale.1 + doxygen/manpages/man1/dcmsend.1 + doxygen/manpages/man1/dcmsign.1 + doxygen/manpages/man1/dcod2lum.1 + doxygen/manpages/man1/dconvlum.1 + doxygen/manpages/man1/drtdump.1 + doxygen/manpages/man1/dsr2html.1 + doxygen/manpages/man1/dsr2xml.1 + doxygen/manpages/man1/dsrdump.1 + doxygen/manpages/man1/dump2dcm.1 + doxygen/manpages/man1/echoscu.1 + doxygen/manpages/man1/findscu.1 + doxygen/manpages/man1/getscu.1 + doxygen/manpages/man1/img2dcm.1 + doxygen/manpages/man1/movescu.1 + doxygen/manpages/man1/pdf2dcm.1 + doxygen/manpages/man1/storescp.1 + doxygen/manpages/man1/storescu.1 + doxygen/manpages/man1/termscu.1 + doxygen/manpages/man1/wlmscpfs.1 + doxygen/manpages/man1/xml2dcm.1 + doxygen/manpages/man1/xml2dsr.1 + +- Updated Makefile dependencies. + Affects: dcmdata/libi2d/Makefile.dep + dcmdata/libsrc/Makefile.dep + dcmdata/tests/Makefile.dep + dcmpstat/apps/Makefile.dep + dcmpstat/libsrc/Makefile.dep + dcmqrdb/apps/Makefile.dep + dcmqrdb/libsrc/Makefile.dep + dcmwlm/libsrc/Makefile.dep + ofstd/libsrc/Makefile.dep + +- Fixed formatting errors in dcmqrscp's man page. + Affects: dcmqrdb/docs/dcmqrscp.man + +- Documented dcmqrdb's new character set features. + Affects: dcmqrdb/docs/dcmqrcnf.txt + dcmqrdb/docs/dcmqrscp.man + dcmqrdb/etc/dcmqrscp.cfg + +- Fixed digits10 not being a compile time constant: + Fixed OFnumeric_limits::digits10 and OFnumeric_limits::max_digits10 not being + compile time constants due to a previous lazy fix for building with GCC + '-pedantic'. + Removed: ofstd/libsrc/oflimits.cc + Affects: config/arith.cc + ofstd/include/dcmtk/ofstd/oflimits.h + ofstd/libsrc/CMakeLists.txt + ofstd/libsrc/Makefile.in + +- Fixed Visual Studio linker problem with DLLs: + Visual Studio got confused by DcmQueryRetrieveCharacterSetOptions being + forward declared as a class while defined as a struct, which prevented it from + linking the functions using it from DLLs correctly. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h + +**** Changes from 2017.02.28 (riesmeier) + +- Further fixes to API documentation: + Further fixes to API documentation, mainly for reasons of consistency. + Affects: dcmdata/include/dcmtk/dcmdata/dcvrda.h + dcmdata/include/dcmtk/dcmdata/dcvrdt.h + dcmdata/include/dcmtk/dcmdata/dcvrtm.h + +- Updated documentation of getOFTimeFromString(): + Made sure that the documentation of getOFTimeFromString() is again + consistent with the implementation (after the latter changed recently + with commit 255ecc7). + Affects: dcmdata/include/dcmtk/dcmdata/dcvrtm.h + +- Updated documentation of getOFDateTimeFromString(): + Made sure that the documentation of getOFDateTimeFromString() is again + consistent with the implementation (after the latter changed recently + with commit 255ecc7). + Affects: dcmdata/include/dcmtk/dcmdata/dcvrdt.h + +- Removed documentation of macro STRICT_COMPARE: + Removed documentation of macro STRICT_COMPARE since it is no longer used + in the "dcmqrdb" module (as a result of the recent commit 4560c0a). + Affects: config/docs/macros.txt + +**** Changes from 2017.02.28 (schlamelcher) + +- Fixed wrong value range check in extractDigits(): + OFStandard::extractDigits() used the wrong member of OFnumeric_limits to check + whether the given type could hold the requested number of digits (base two + digits instead of base 10). + Affects: ofstd/include/dcmtk/ofstd/ofstd.h + +- Workaround for clang non-type template argument issue: + Workaround for clang not wanting to interpret a size_t non-type template + argument as a boolean expression (!= 0) when C++11 support was enabled. + Affects: ofstd/include/dcmtk/ofstd/ofstd.h + +**** Changes from 2017.02.27 (schlamelcher) + +- Fixed Q/R matching on failed character set conversion: + Added error handling for the on the fly character set conversion during + attribute matching in dcmqrdb. The dcmqrdb library will now use the original + value if character set conversion fails, instead of the empty value that + caused Universal Matching behavior inappropriately. + Affects: dcmqrdb/libsrc/dcmqrdbi.cc + +- Added support for Issuer of Patient ID to dcmqrdb. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + dcmqrdb/libsrc/dcmqrdbi.cc + +- Added support for additional Matching Keys: + Added support for the following attributes: + Issuer of Patient ID (0010,0021) + Study Date (0008,0020) + Study Time (0008,0030) + Affects: dcmwlm/docs/wlmscpfs.man + dcmwlm/include/dcmtk/dcmwlm/wlfsim.h + dcmwlm/include/dcmtk/dcmwlm/wltypdef.h + dcmwlm/libsrc/wlds.cc + dcmwlm/libsrc/wlfsim.cc + +- Moved dcmqrdb's trimString() function to OFStandard: + Moved dcmqrdb's trimString() function to OFStandard since other code might + also need it (e.g. dcmwlm). + Affects: dcmqrdb/libsrc/dcmqrdbi.cc + ofstd/include/dcmtk/ofstd/ofstd.h + ofstd/libsrc/ofstd.cc + +- Fixed date time parsing regarding time zones: + Fixed a bug in DcmDateTime::getOFDateTimeFromString() that did not allow + parsing time zone information from date time values that did not contain a + time value (e.g. 2017+0100). + Affects: dcmdata/libsrc/dcvrdt.cc + +- Added character set conversion support to dcmqrdb: + The dcmqrdb library now supports on the fly character set conversion for + attribute matching and converting the find response to the requested character + set. + The matching has been refactored to use DcmAttributeMatching internally. + Increased the size of attributes that are affected by Specific Character Set + in the index file so that values using multi byte encodings may still fit. + Affects: dcmqrdb/apps/dcmqrscp.cc + dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcbf.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqrcnf.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdba.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqrtis.h + dcmqrdb/libsrc/dcmqrcbf.cc + dcmqrdb/libsrc/dcmqrcnf.cc + dcmqrdb/libsrc/dcmqrdbi.cc + dcmqrdb/libsrc/dcmqrsrv.cc + dcmqrdb/libsrc/dcmqrtis.cc + +**** Changes from 2017.02.26 (riesmeier) + +- Fixed typo, tab character and trailing space. + Affects: ofstd/include/dcmtk/ofstd/oflist.h + +**** Changes from 2017.02.26 (eichelberg) + +- Fixed minor integer over/undeflows reported by clang: + Fixed a few harmless integer overflows and underflows reported + by clang when compiled with -fsanitize=integer. + Affects: dcmdata/libi2d/i2dbmps.cc + dcmdata/libsrc/dcswap.cc + ofstd/include/dcmtk/ofstd/oflist.h + ofstd/libsrc/offname.cc + +**** Changes from 2017.02.24 (schlamelcher) + +- Introduced DcmAttributeMatching: + DcmAttributeMatching implements the different attribute matching functions + defined in the DICOM standard for Query/Retrieve and Worklist queries. + DcmAttributeMatching may either be used by explicitly calling one of its + static member matching functions or by creating an DcmAttributeMatching + object for a specific VR. + Added: dcmdata/include/dcmtk/dcmdata/dcmatch.h + dcmdata/libsrc/dcmatch.cc + dcmdata/tests/tmatch.cc + Affects: dcmdata/libsrc/CMakeLists.txt + dcmdata/libsrc/Makefile.in + dcmdata/tests/CMakeLists.txt + dcmdata/tests/Makefile.in + dcmdata/tests/tests.cc + ofstd/include/dcmtk/ofstd/ofdatime.h + +**** Changes from 2017.02.24 (riesmeier) + +- Added parentheses around boolean operations: + Added parentheses around boolean operations (i.e. comparisons) in order + to be consistent with the rest of the source file. + Affects: ofstd/libsrc/ofdatime.cc + +- Added trailing "." after first sentence (Doxygen): + This trailing "." is required since the "first sentence" is used as a brief + description by Doxygen (e.g. when generating HTML output). + Affects: ofstd/include/dcmtk/ofstd/ofdatime.h + +- Updated copyright date after previous commit. + Affects: ofstd/include/dcmtk/ofstd/ofdate.h + ofstd/include/dcmtk/ofstd/ofdatime.h + ofstd/libsrc/ofdatime.cc + +**** Changes from 2017.02.24 (schlamelcher) + +- Refactored string to date and time conversion: + Refactored DcmDate, DcmTime and DcmDateTime string parser functions to work + on character string + size input in addition to the existing functions that + work on OFStrings. The new functions do not require the strings to be zero + terminated and are therefore composable. + DcmDateTime::getOFDateTimeFromString is now implemented based on + DcmTime::getOFTimeFromString, which is now possible since the functions + can now be used on substrings without unnecessary copies. + Default parameters have been replaced by respective overloads to provide + a consistent API in all three classes (all now have a function that takes + no additional parameters to the string and the result). + Affects: dcmdata/include/dcmtk/dcmdata/dcvrda.h + dcmdata/include/dcmtk/dcmdata/dcvrdt.h + dcmdata/include/dcmtk/dcmdata/dcvrtm.h + dcmdata/libsrc/dcvrda.cc + dcmdata/libsrc/dcvrdt.cc + dcmdata/libsrc/dcvrtm.cc + ofstd/include/dcmtk/ofstd/ofdatime.h + +- Added string to number helper functions: + Added helper functions for extracting fixed length unsigned integer numbers + from character strings that do not require the strings to be zero terminated. + Affects: ofstd/include/dcmtk/ofstd/ofstd.h + +- Added comparison operators for OFDateTime: + Added less, greater, less or equal and greater or equal comparison operators + to OFDateTime. + Affects: ofstd/include/dcmtk/ofstd/ofdate.h + ofstd/include/dcmtk/ofstd/ofdatime.h + ofstd/libsrc/ofdatime.cc + ofstd/tests/tofdatim.cc + +**** Changes from 2017.02.22 (onken) + +- Added error message when writing sequences. + Affects: dcmiod/include/dcmtk/dcmiod/iodutil.h + +**** Changes from 2017.02.21 (riesmeier) + +- Various documentation fixes to newDicomElement(): + Fixed typos, wrong descriptions, parameters and line breaks in the API + documentation of the newDicomElement() functions. + Affects: dcmdata/include/dcmtk/dcmdata/dcitem.h + +**** Changes from 2017.02.17 (eichelberg) + +- Fixed DJDecoderRegistration::registerCodecs(): + Fixed parameter list of DJDecoderRegistration::registerCodecs(), + which contained one superfluous parameter. + Affects: dcmjpeg/include/dcmtk/dcmjpeg/djdecode.h + dcmjpeg/libsrc/djdecode.cc + +**** Changes from 2017.02.15 (riesmeier) + +- Enhanced logging in case of error: + Enhanced output to the logger in case of fatal errors, e.g. if the DICOMDIR + file to be updated is invalid/corrupted. + Affects: dcmdata/apps/dcmgpdir.cc + +- Fixed crash while processing an invalid DICOMDIR: + Fixed a crash that could occur while processing an invalid DICOMDIR file, + e.g. when a single Directory Record was referenced more than once and, + therefore, deleted more than once (from the DcmDicomDir destructor). Now, + an error is both reported to the logger and returned to the caller. + The main changes were done to DcmDicomDir::moveRecordToTree(). Additionally, + slightly enhanced comments on other functions and improved the logger output. + Thanks to forum user "psih128" for the report and for the sample file. + Closes DCMTK Bug #388. + Affects: dcmdata/libsrc/dcdicdir.cc + +**** Changes from 2017.02.14 (grallert) + +- Fixed and enhanced documentation of JSON functions: + Removed leading '*' characters between @code{.cpp} and @endcode sections + within doxygen markup. + Further enhanced the documentation of DcmJsonFormat. + Affects: dcmdata/include/dcmtk/dcmdata/dcjson.h + +**** Changes from 2017.02.10 (onken) + +- Fixed missing assignment from last commit: + Enhanced intendation. + Affects: dcmdata/libsrc/dcitem.cc + +- Hide public element constructors setting length: + DCMTK's VR classes allowed to construct new DICOM elements by tag and a + given length value. Internally the length is set, however, no related memory + is allocated. This is the desired behaviour when reading new DICOM datasets + since after creation of the element with a specific length after reading tag + and length from the stream, the value is read and set on the element right + afterwards. + However, if such an element is created manually by a user who tries afterwards + to access (read or write) a value to that element, a crash can occur since + the element itself expects to have memory allocated up to the given length. + In order to fix this, the related VR classes' constructors have been removed + from the public interface and have been made protected. So far, only DcmItem + and partly DcmDirectoryRecord (as "parsing" classes constructing elements in + the valid way described above) need direct access to those constructors and + thus have been amended by related friend declarations. + The global functions newDicomElement(...) that use those constructors directly + or indirectly have been moved into DcmItem as static methods. The ones that + can be used publicly (those only taking tag and not length), are made public + while the only one taking length (and other parsing parameters) is protected + and is only used by DcmItem or safely from within other public methods. + An alternative approach would have been to change the parsing behaviour + that constructs element with explicit length first, in order to fill them + with a value in the second step. Instead, onld could construct with 0 + length and only set the length when actually setting the value. This + would make the explicit length constructors superfluous. + However, since the parser's internals are quite complicated regarding + length handling, it was not touched for now. However, the work done may make + it easier to change the parser accordingly later. + Another approach would be to always allocate memory in the constructors. + However this will lead often to double initializations since most methods + that set a value in a subsequent call will delete that memory to allocate + the value newly a second time. Also, the possibility to create elements with + an explicit empty value of a specific length is of limited use: For number- + based VRs this can easily be imitated by calling the related set() method + afterwards, while for strings it is not even clear what an empty value + of a specifc length might be. + Thanks to forum user spasmous for the report. + This fixes DCMTK bug #374. + Affects: dcmdata/apps/dump2dcm.cc + dcmdata/apps/xml2dcm.cc + dcmdata/include/dcmtk/dcmdata/dcbytstr.h + dcmdata/include/dcmtk/dcmdata/dcitem.h + dcmdata/include/dcmtk/dcmdata/dcpixseq.h + dcmdata/include/dcmtk/dcmdata/dcsequen.h + dcmdata/include/dcmtk/dcmdata/dcvrat.h + dcmdata/include/dcmtk/dcmdata/dcvrfd.h + dcmdata/include/dcmtk/dcmdata/dcvrfl.h + dcmdata/include/dcmtk/dcmdata/dcvrobow.h + dcmdata/include/dcmtk/dcmdata/dcvrol.h + dcmdata/include/dcmtk/dcmdata/dcvrsl.h + dcmdata/include/dcmtk/dcmdata/dcvrss.h + dcmdata/include/dcmtk/dcmdata/dcvrul.h + dcmdata/include/dcmtk/dcmdata/dcvrulup.h + dcmdata/include/dcmtk/dcmdata/dcvrus.h + dcmdata/include/dcmtk/dcmdata/libi2d/i2doutpl.h + dcmdata/libi2d/i2d.cc + dcmdata/libsrc/dcbytstr.cc + dcmdata/libsrc/dcitem.cc + dcmdata/libsrc/dcpath.cc + dcmdata/libsrc/dcpixseq.cc + dcmdata/libsrc/dcsequen.cc + dcmdata/libsrc/dcvrat.cc + dcmdata/libsrc/dcvrfd.cc + dcmdata/libsrc/dcvrfl.cc + dcmdata/libsrc/dcvrobow.cc + dcmdata/libsrc/dcvrol.cc + dcmdata/libsrc/dcvrsl.cc + dcmdata/libsrc/dcvrss.cc + dcmdata/libsrc/dcvrul.cc + dcmdata/libsrc/dcvrulup.cc + dcmdata/libsrc/dcvrus.cc + dcmiod/libsrc/iodutil.cc + dcmiod/libsrc/modbase.cc + dcmiod/libsrc/modenhusimage.cc + dcmiod/libsrc/modmultiframedimension.cc + dcmiod/libsrc/modusfor.cc + dcmnet/apps/movescu.cc + dcmnet/libsrc/dimcmd.cc + dcmnet/libsrc/diutil.cc + dcmqrdb/libsrc/dcmqrdbi.cc + dcmtract/libsrc/trctrackset.cc + dcmwlm/libsrc/wlds.cc + dcmwlm/libsrc/wldsfs.cc + dcmwlm/tests/wltest.cc + +**** Changes from 2017.02.08 (riesmeier) + +- Added two missing SOP Classes to modality table: + Added two missing non-patient Storage SOP Classes to the modality table, + which e.g. maps a known UID to a short character code ("modality") that + can be used to generate a meaningful filename prefix. That way, a storage + receiver of a Color Palette Storage object will generate a filename + starting with "CP." instead of "UNKNOWN." (which is the default in case + of an unknown UID). + Affects: dcmdata/libsrc/dcuid.cc + +- Fixed name numberOfAllDcmStorageSOPClassUIDs: + Fixed inconsistent name numberOfAllDcmStorageSOPClassUIDs by renaming + it to numberOfDcmAllStorageSOPClassUIDs since the related global array + is called dcmAllStorageSOPClassUIDs and not allDcmStorageSOPClassUIDs. + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcuid.cc + dcmnet/apps/movescu.cc + dcmnet/apps/storescp.cc + dcmpstat/apps/dcmpsrcv.cc + dcmqrdb/libsrc/dcmqrptb.cc + dcmqrdb/libsrc/dcmqrsrv.cc + +- Allow for sending non-patient DICOM objects: + The storescu and dcmsend tool (based on the class DcmStorageSCU) are now + able to send non-patient DICOM objects. The latter was already able to do + so but reported a warning to the DEBUG logger that an "unknown storage SOP + class (with standard UID prefix)" is to be transferred. This warning has + now disappeared. + This partly closes DCMTK Conformance #695. + Affects: dcmnet/apps/storescu.cc + dcmnet/libsrc/dstorscu.cc + +- Further enhanced support for non-patient objects: + Added optional parameter to dcmIsaStorageSOPClassUID() that allows for + checking a given SOP Class UID for being a known Storage SOP Class UID + of a non-patient DICOM object. Also added support to check for image + objects only. The default behavior of this function has not changed, + i.e. only those Storage SOP Classes are covered that fit into into the + conventional PATIENT-STUDY-SERIES-INSTANCE information model. + The function dcmIsImageStorageSOPClassUID() is now only a shortcut for + calling dcmIsaStorageSOPClassUID() with the new type parameter being + ESSC_Image. This is useful in order to be backward compatible. + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcuid.cc + +**** Changes from 2017.02.07 (onken) + +- Rebuilt dependencies. + Affects: dcmdata/apps/Makefile.dep + dcmdata/libsrc/Makefile.dep + dcmdata/tests/Makefile.dep + dcmiod/tests/Makefile.dep + dcmnet/apps/Makefile.dep + dcmnet/libsrc/Makefile.dep + dcmnet/tests/Makefile.dep + dcmpmap/libsrc/Makefile.dep + dcmpstat/tests/Makefile.dep + dcmseg/libsrc/Makefile.dep + dcmsr/libsrc/Makefile.dep + dcmtls/libsrc/Makefile.dep + ofstd/libsrc/Makefile.dep + ofstd/tests/Makefile.dep + +- Remove unused files from build system. + Removed: dcmpmap/tests/Makefile.dep + dcmseg/apps/CMakeLists.txt + Affects: dcmpmap/Makefile.in + +**** Changes from 2017.02.06 (riesmeier) + +- Cleanup of comments (retired DICOM SOP Classes). + Affects: dcmnet/etc/storescp.cfg + +- Further fixes regarding non-patient objects: + Replaced some non-patient DICOM objects in dcmLongSCUStorageSOPClassUIDs by + the three Legacy Converted Enhanced Image objects. This is another step + towards a clearer distinction between patient and non-patient objects. + Also see DCMTK Conformance #695. + Affects: dcmdata/libsrc/dcuid.cc + dcmnet/docs/getscu.man + dcmqrdb/docs/dcmqrscp.man + +- Fixes for non-patient DICOM Storage Objects: + Various fixes for non-patient DICOM Storage Objects such as Color Palette + or Generic Implant Template Storage. The array dcmAllStorageSOPClassUIDs + only contains the UIDs of those Storage SOP Classes that fit into the + conventional PATIENT-STUDY-SERIES-INSTANCE information model. Of course, + all other DICOM objects for which the Storage Service is defined should + also be transferred using a C-STORE message. + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcuid.cc + dcmnet/docs/storescp.man + dcmnet/etc/storescp.cfg + dcmqrdb/docs/dcmqrscp.man + +- Added new sample association negotiation profile: + Added new sample association negotiation profile "AllDICOM" for SCPs, e.g. + for storescp or dcmrecv. This new profile allows for accepting all 126 + Storage SOP Classes that are currently defined in the DICOM standard (i.e. + without retired, draft, DICOS and DICONDE Storage SOP Classes). + Affects: dcmnet/etc/storescp.cfg + +- Fixed wrong name of Storage SOP Class: + Fixed wrong name of Wide Field Ophthalmic Photography 3D Coordinates Image + Storage SOP Class; the name prefix "Wide Field" was missing for some reason. + Affects: dcmdata/libsrc/dcuid.cc + +**** Changes from 2017.02.06 (onken) + +- Fixed crash in debug mode (const pointer misuse): + Fixed crash in debug mode apparently caused by writing to const pointer. + Minor changes (parameter type, whitespace). + Closes DCMTK Bug #646. + Affects: dcmnet/include/dcmtk/dcmnet/dccfpcmp.h + dcmnet/libsrc/dccfpcmp.cc + +**** Changes from 2017.02.03 (onken) + +- Moved latest post-read checks to DcmDataset: + Moved the recently introduced post-read checks into DcmDataset since they only + apply to datasets and not general purpose items. This eliminates the need of + explicitly checking in the code whether it is working on top level or not. + Affects: dcmdata/include/dcmtk/dcmdata/dcdatset.h + dcmdata/include/dcmtk/dcmdata/dcitem.h + dcmdata/libsrc/dcdatset.cc + dcmdata/libsrc/dcitem.cc + +- Fixed dcumentation one more time. + Affects: dcmdata/include/dcmtk/dcmdata/dcitem.h + +- Fixed parameter type, and docs. + Affects: dcmdata/include/dcmtk/dcmdata/dcitem.h + +**** Changes from 2017.02.03 (riesmeier) + +- Fixed wrong indentation of new options. + Affects: dcmdata/docs/dcmconv.man + dcmdata/docs/dcmdump.man + +**** Changes from 2017.02.03 (onken) + +- Report error in case of wrong Pixel Data encoding: + It has been reported that some DICOM datasets do write encapsulated pixel data + without following the related rules, i.e. to use undefined length for the Pixel + Data element and to use Pixel Sequence and Pixel Items inside. + So far such files (using defined length on encapsulated Pixel Data) have been + read without any warnings or errors giving the impression that the data is + valid. + Now, DCMTK will per default report an error if reading such files. There is a + global switch which permits to enforce the old behaviour, i.e. to read such + files as if the encoding would be correct. However, in that case a warning + is printed. + Options demonstrating the flag have been added to dcmdump and dcmconv. + The new functionality is aware of the fact that Pixel Data not being part of + the top level dataset, i.e. nested within sequences, must not use the + encapsulated format but remain uncompressed (as for icon images). + The validity of internal structures of the Pixel Data element (Pixel Sequence + and Items) is not checked by this new compatibility flag. + This closes DCMTK Bug #427. + Affects: dcmdata/apps/dcmconv.cc + dcmdata/apps/dcmdump.cc + dcmdata/docs/dcmconv.man + dcmdata/docs/dcmdump.man + dcmdata/include/dcmtk/dcmdata/dcerror.h + dcmdata/include/dcmtk/dcmdata/dcitem.h + dcmdata/include/dcmtk/dcmdata/dcobject.h + dcmdata/libsrc/dcerror.cc + dcmdata/libsrc/dcitem.cc + dcmdata/libsrc/dcobject.cc + +**** Changes from 2017.02.02 (riesmeier) + +- Added support for unkown VR "??" in dump file: + Added support for unknown VR "??" that is e.g. used by dcmdump when parsing + "Unknown Tag & Data" in a transfer syntax with implicit VR. + Thanks to forum user "ionut.vaida" for the triggering posting. + Affects: dcmdata/apps/dump2dcm.cc + +- Fixed typo in command line option check: + Fixed a typo when checking the command line option "--prefer-mpeg4-2-st". + Affects: dcmnet/apps/getscu.cc + +- Check returned status of chooseRepresentation(): + Check returned status of chooseRepresentation() and report an error if + changing the pixel representation fails. This information is useful in + cases where a DICOM file cannot be converted because of the Pixel Data. + Affects: dcmdata/apps/dcmconv.cc + +**** Changes from 2017.02.01 (riesmeier) + +- Added further support for Supplement 195 (HEVC): + Added further support for Supplement 195 (HEVC/H.265 Transfer Syntax). Now, + also movescu's --accept-all option supports the two new transfer syntaxes. + Partly closes DCMTK Conformance #702. + Affects: dcmnet/apps/movescu.cc + dcmnet/docs/movescu.man + +- Shortened description of MPEG xfer options: + Shortened description of the various MPEG (mainly -4 but also -2) transfer + syntax options in order to fit into the max. line length of 80 characters. + The full description is, of course, still available in the man page. + Affects: dcmnet/apps/getscu.cc + dcmnet/apps/movescu.cc + dcmnet/apps/storescp.cc + dcmnet/apps/storescu.cc + dcmqrdb/apps/dcmqrscp.cc + +- Fixed description of option --prefer-mpeg4-bd. + Affects: dcmnet/docs/getscu.man + +**** Changes from 2017.02.01 (schlamelcher) + +- Added missing comment header to several unit tests. + Affects: ofstd/tests/tlimits.cc + ofstd/tests/toption.cc + ofstd/tests/ttuple.cc + ofstd/tests/tvariant.cc + +**** Changes from 2017.02.01 (onken) + +- Fixed minor documentation issue. + Affects: dcmnet/include/dcmtk/dcmnet/dcuserid.h + +**** Changes from 2017.02.01 (schlamelcher) + +- Minor fixes in code comments of yesterdays commits. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + dcmqrdb/libsrc/dcmqrdbi.cc + +**** Changes from 2017.02.01 (onken) + +- Fixed minor documnetation issue. + Affects: dcmtls/include/dcmtk/dcmtls/tlsscu.h + +- Fixed User Identification Negotiation ack message: + Fixed User Identification Negotiation Acknowledgement message which used the + same user item identifier (0x58) as the request but has to use a different one + (0x59) instead. Enhanced documentation. + Fixes DCMTK bug #437. + Thanks for the report to Yves Neumann. + Affects: dcmnet/include/dcmtk/dcmnet/dcuserid.h + dcmnet/libsrc/dcuserid.cc + dcmnet/libsrc/dulparse.cc + +- Added missing documentation: + Closes DCMTK Bug #541. + Affects: dcmtls/include/dcmtk/dcmtls/tlsscu.h + +**** Changes from 2017.02.01 (riesmeier) + +- Fixed bug introduced with last commit (crash): + Fixed a severe bug introduced with the last commit that caused the tool to + crash if option --accept-all (+xa) was used. The reason was that the size + of the array "transferSyntaxes" was not increased even though new entries + were added to it (namely, three new MPEG4 transfer syntaxes). + Affects: dcmnet/apps/movescu.cc + +**** Changes from 2017.01.31 (riesmeier) + +- Removed obsolete command line options: + Removed options that were removed from the command line tool. + Also removed outdated/useless section on "JSON Encoding". + Affects: dcmdata/docs/dcm2json.man + +- Updated credits with regard to the Debian package. + Affects: CREDITS + +- Removed useless "option block" for single option. + Affects: dcmdata/apps/dcm2json.cc + +- Use DCM_MaxReadLength as the default value: + Use DCM_MaxReadLength as the default value for the "maxReadLength" parameter + and not "4096", i.e. a numerical value. Also fixed source code formatting. + Affects: dcmdata/apps/dcm2json.cc + +- Minor fixes for reasons of consistency: + Minor fixes such as source code formatting or naming conventions for + reasons of consistency with existing code. + Affects: dcmdata/include/dcmtk/dcmdata/dcvr.h + dcmdata/libsrc/dcvr.cc + +- Made sure that a value is loaded before modified: + Made sure that an element value is actually loaded before it is modified + with DcmElement::changeValue(). This fixes a possible crash (segmentation + fault) in case the "maxReadLength" parameter of the various loadFile/read + methods was set to a very low value (i.e., less than 4). + Thanks to Michael Schinner for the bug + report and for the test program that demonstrates this crash. + Affects: dcmdata/libsrc/dcelem.cc + +**** Changes from 2017.01.31 (grallert) + +- Removed unused command line parameters from dcm2json: + Removed --load-all, --load-short and --max-read-length, since they have no + meaning for dcm2json (all elements will be read as needed for the JSON output + anyway). + Affects: dcmdata/apps/dcm2json.cc + +- Added MPEG-4 transfer syntax options to several apps: + Several MPEG-4 transfer syntaxes may now be proposed/preferred via the + respective command line arguments of storescu etc. + Affects: dcmnet/apps/getscu.cc + dcmnet/apps/movescu.cc + dcmnet/apps/storescp.cc + dcmnet/apps/storescu.cc + dcmnet/docs/getscu.man + dcmnet/docs/movescu.man + dcmnet/docs/storescp.man + dcmnet/docs/storescu.man + dcmqrdb/apps/dcmqrscp.cc + dcmqrdb/docs/dcmqrscp.man + dcmqrdb/libsrc/dcmqrcbm.cc + dcmqrdb/libsrc/dcmqrsrv.cc + +**** Changes from 2017.01.31 (schlamelcher) + +- Added Specific Character Set to the dcmqrdb index: + The value of Specific Character set (if any) is now also stored into the index + file of dcmqrdb and provided within find responses. + Don't forget to re-create your database indices using dcmqridx. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + dcmqrdb/libsrc/dcmqrdbi.cc + +- Refactored dcmqrdb element list to use new/delete: + Dcmqrdb's list implementation is now created and destroyed using new/delete + instead of malloc/free. This ensures all list element members are correctly + initialized via the constructor and enables the use of non-POD types inside + the list. + Affects: dcmqrdb/libsrc/dcmqrdbi.cc + +- Fixed: ST is also affected by specific character set. + Affects: dcmdata/libsrc/dcvr.cc + +**** Changes from 2017.01.31 (riesmeier) + +- Added support for recently approved CP-1619: + Added support for CP-1619 to the data dictionary. + This CP was approved during this week's DICOM WG-06 meeting. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +**** Changes from 2017.01.30 (schlamelcher) + +- Added DcmSpecificCharacterSet state checking methods: + The initialization state (i.e. whether selectCharacterSet was called before) + of an DcmSpecificCharacterSet object can now be queried via the corresponding + operator OFBool and operator! methods. This eases using a persistent object + for multiple character set conversions. + Affects: dcmdata/include/dcmtk/dcmdata/dcspchrs.h + dcmdata/libsrc/dcspchrs.cc + +- Refactored DcmCharString based classes using DcmVR: + DcmCharString and the VR classes based on it now use the information from + DcmVR for character set conversions; this reduces information redundancy. + Affects: dcmdata/include/dcmtk/dcmdata/dcchrstr.h + dcmdata/include/dcmtk/dcmdata/dcvrlo.h + dcmdata/include/dcmtk/dcmdata/dcvrpn.h + dcmdata/include/dcmtk/dcmdata/dcvrsh.h + dcmdata/libsrc/dcchrstr.cc + dcmdata/libsrc/dcvrlo.cc + dcmdata/libsrc/dcvrpn.cc + dcmdata/libsrc/dcvrsh.cc + +- Added additional information to DcmVR: + DcmVR now also provides Specific Character Set related information, if a given + VR is affected by the value of Specific Character Set and what delimiter + characters are to be regarded for character set conversion. + Affects: dcmdata/include/dcmtk/dcmdata/dcvr.h + dcmdata/libsrc/dcvr.cc + +**** Changes from 2017.01.27 (riesmeier) + +- Removed gethostbyname from compatibility header: + Removed gethostbyname() function from dcmnet's old compatibility header file + since this function has been wrapped and moved to ofstd with commit a144346. + Affects: dcmnet/include/dcmtk/dcmnet/dcompat.h + +- Removed obsolete macro (Windows 95 workaround): + Removed the obsolete macro NO_WINDOWS95_ADDRESS_TRANSLATION_WORKAROUND, + which probably nobody every used. Since the gethostbyname() function, + at least officially, does not accept an IP address on many operating + systems, the "workaround" is now the only way of doing it. And, since + it was already the default behavior for almost 20 years now, nothing + changes at all. + Also see DCMTK Bug #391. + Affects: config/docs/macros.txt + dcmnet/libsrc/dulfsm.cc + +**** Changes from 2017.01.25 (riesmeier) + +- Added explicit typecast to function parameter: + Added explicit typecast to "int" parameter of Windows function + WideCharToMultiByte() in order to avoid a compiler warning. + Affects: ofstd/libsrc/ofstd.cc + +- Changed type for index/number of sequence items: + Changed data type used for the index and number of sequence items. The type + "size_t" seems to be more appropriate than "unsigned long" since internally + an OFList (subset of std:list) instance is used for the data management. + As a consequence, VisualStudio and other compilers will not warn anymore on + a "possible loss of data" (warning C4267). + Affects: dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtads.h + dcmrt/include/dcmtk/dcmrt/seq/drtafs.h + dcmrt/include/dcmtk/dcmrt/seq/drtags.h + dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtas1.h + dcmrt/include/dcmtk/dcmrt/seq/drtas5.h + dcmrt/include/dcmtk/dcmrt/seq/drtas6.h + dcmrt/include/dcmtk/dcmrt/seq/drtas7.h + dcmrt/include/dcmtk/dcmrt/seq/drtass.h + dcmrt/include/dcmtk/dcmrt/seq/drtbads.h + dcmrt/include/dcmtk/dcmrt/seq/drtbas.h + dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h + dcmrt/include/dcmtk/dcmrt/seq/drtccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h + dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtces.h + dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtchs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcims.h + dcmrt/include/dcmtk/dcmrt/seq/drtcis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtdias.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtds.h + dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drteas.h + dcmrt/include/dcmtk/dcmrt/seq/drtecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfds.h + dcmrt/include/dcmtk/dcmrt/seq/drtfes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h + dcmrt/include/dcmtk/dcmrt/seq/drtfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtgas.h + dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h + dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiais.h + dcmrt/include/dcmtk/dcmrt/seq/drtians.h + dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h + dcmrt/include/dcmtk/dcmrt/seq/drtibls.h + dcmrt/include/dcmtk/dcmrt/seq/drtibs.h + dcmrt/include/dcmtk/dcmrt/seq/drticpds.h + dcmrt/include/dcmtk/dcmrt/seq/drticps.h + dcmrt/include/dcmtk/dcmrt/seq/drtics.h + dcmrt/include/dcmtk/dcmrt/seq/drtiis.h + dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h + dcmrt/include/dcmtk/dcmrt/seq/drtircs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h + dcmrt/include/dcmtk/dcmrt/seq/drtitts.h + dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtiws.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h + dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h + dcmrt/include/dcmtk/dcmrt/seq/drtmas.h + dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtmls.h + dcmrt/include/dcmtk/dcmrt/seq/drtmps.h + dcmrt/include/dcmtk/dcmrt/seq/drtmris.h + dcmrt/include/dcmtk/dcmrt/seq/drtmss.h + dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h + dcmrt/include/dcmtk/dcmrt/seq/drtoas.h + dcmrt/include/dcmtk/dcmrt/seq/drtois.h + dcmrt/include/dcmtk/dcmrt/seq/drtopis.h + dcmrt/include/dcmtk/dcmrt/seq/drtos.h + dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h + dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtpics.h + dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtporis.h + dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h + dcmrt/include/dcmtk/dcmrt/seq/drtpss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtqds.h + dcmrt/include/dcmtk/dcmrt/seq/drtras.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h + dcmrt/include/dcmtk/dcmrt/seq/drtrics.h + dcmrt/include/dcmtk/dcmrt/seq/drtrims.h + dcmrt/include/dcmtk/dcmrt/seq/drtris.h + dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h + dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h + dcmrt/include/dcmtk/dcmrt/seq/drtrses.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrws.h + dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h + dcmrt/include/dcmtk/dcmrt/seq/drtscris.h + dcmrt/include/dcmtk/dcmrt/seq/drtscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtshds.h + dcmrt/include/dcmtk/dcmrt/seq/drtsins.h + dcmrt/include/dcmtk/dcmrt/seq/drtsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtss.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsss.h + dcmrt/include/dcmtk/dcmrt/seq/drttms0.h + dcmrt/include/dcmtk/dcmrt/seq/drttms9.h + dcmrt/include/dcmtk/dcmrt/seq/drttscds.h + dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h + dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h + dcmrt/include/dcmtk/dcmrt/seq/drttts.h + dcmrt/include/dcmtk/dcmrt/seq/drtudis.h + dcmrt/include/dcmtk/dcmrt/seq/drtvls.h + dcmrt/include/dcmtk/dcmrt/seq/drtwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtws.h + dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h + dcmrt/libsrc/drtaadcs.cc + dcmrt/libsrc/drtadcs.cc + dcmrt/libsrc/drtads.cc + dcmrt/libsrc/drtafs.cc + dcmrt/libsrc/drtags.cc + dcmrt/libsrc/drtajcs.cc + dcmrt/libsrc/drtas1.cc + dcmrt/libsrc/drtas5.cc + dcmrt/libsrc/drtas6.cc + dcmrt/libsrc/drtas7.cc + dcmrt/libsrc/drtass.cc + dcmrt/libsrc/drtbads.cc + dcmrt/libsrc/drtbas.cc + dcmrt/libsrc/drtbcps.cc + dcmrt/libsrc/drtbl2.cc + dcmrt/libsrc/drtbl5.cc + dcmrt/libsrc/drtbldls.cc + dcmrt/libsrc/drtbldps.cc + dcmrt/libsrc/drtblds1.cc + dcmrt/libsrc/drtblds5.cc + dcmrt/libsrc/drtblds6.cc + dcmrt/libsrc/drtbldts.cc + dcmrt/libsrc/drtbrcss.cc + dcmrt/libsrc/drtbrdrs.cc + dcmrt/libsrc/drtbrs.cc + dcmrt/libsrc/drtbs.cc + dcmrt/libsrc/drtbss.cc + dcmrt/libsrc/drtbvcps.cc + dcmrt/libsrc/drtcbars.cc + dcmrt/libsrc/drtccs.cc + dcmrt/libsrc/drtcctus.cc + dcmrt/libsrc/drtcdrs.cc + dcmrt/libsrc/drtces.cc + dcmrt/libsrc/drtcgis.cc + dcmrt/libsrc/drtchs.cc + dcmrt/libsrc/drtcims.cc + dcmrt/libsrc/drtcis.cc + dcmrt/libsrc/drtcncs.cc + dcmrt/libsrc/drtcos.cc + dcmrt/libsrc/drtcpas.cc + dcmrt/libsrc/drtcpis.cc + dcmrt/libsrc/drtcps.cc + dcmrt/libsrc/drtcs.cc + dcmrt/libsrc/drtcsas.cc + dcmrt/libsrc/drtcshs.cc + dcmrt/libsrc/drtcsis.cc + dcmrt/libsrc/drtcss.cc + dcmrt/libsrc/drtdcs.cc + dcmrt/libsrc/drtdddps.cc + dcmrt/libsrc/drtddps.cc + dcmrt/libsrc/drtdias.cc + dcmrt/libsrc/drtdimcs.cc + dcmrt/libsrc/drtdimrs.cc + dcmrt/libsrc/drtdirs.cc + dcmrt/libsrc/drtdose.cc + dcmrt/libsrc/drtdrs.cc + dcmrt/libsrc/drtds.cc + dcmrt/libsrc/drtdspcs.cc + dcmrt/libsrc/drtdss.cc + dcmrt/libsrc/drtdvhs.cc + dcmrt/libsrc/drtdvrrs.cc + dcmrt/libsrc/drteas.cc + dcmrt/libsrc/drtecs.cc + dcmrt/libsrc/drtes.cc + dcmrt/libsrc/drtfds.cc + dcmrt/libsrc/drtfes.cc + dcmrt/libsrc/drtfgs.cc + dcmrt/libsrc/drtfgss.cc + dcmrt/libsrc/drtfms.cc + dcmrt/libsrc/drtfsss.cc + dcmrt/libsrc/drtgas.cc + dcmrt/libsrc/drtgpis.cc + dcmrt/libsrc/drthsdrs.cc + dcmrt/libsrc/drtiais.cc + dcmrt/libsrc/drtians.cc + dcmrt/libsrc/drtiblds.cc + dcmrt/libsrc/drtibls.cc + dcmrt/libsrc/drtibs.cc + dcmrt/libsrc/drticpds.cc + dcmrt/libsrc/drticps.cc + dcmrt/libsrc/drtics.cc + dcmrt/libsrc/drtiis.cc + dcmrt/libsrc/drtimage.cc + dcmrt/libsrc/drtionpl.cc + dcmrt/libsrc/drtiontr.cc + dcmrt/libsrc/drtipiqs.cc + dcmrt/libsrc/drtircs.cc + dcmrt/libsrc/drtiseis.cc + dcmrt/libsrc/drtitts.cc + dcmrt/libsrc/drtiwps.cc + dcmrt/libsrc/drtiws.cc + dcmrt/libsrc/drtlsds.cc + dcmrt/libsrc/drtlsds6.cc + dcmrt/libsrc/drtlsds7.cc + dcmrt/libsrc/drtmacds.cc + dcmrt/libsrc/drtmas.cc + dcmrt/libsrc/drtmdrs.cc + dcmrt/libsrc/drtmls.cc + dcmrt/libsrc/drtmps.cc + dcmrt/libsrc/drtmris.cc + dcmrt/libsrc/drtmss.cc + dcmrt/libsrc/drtmucs.cc + dcmrt/libsrc/drtoas.cc + dcmrt/libsrc/drtois.cc + dcmrt/libsrc/drtopis.cc + dcmrt/libsrc/drtos.cc + dcmrt/libsrc/drtpbcs.cc + dcmrt/libsrc/drtpcs.cc + dcmrt/libsrc/drtpcxs.cc + dcmrt/libsrc/drtpdecs.cc + dcmrt/libsrc/drtpdeds.cc + dcmrt/libsrc/drtpfms.cc + dcmrt/libsrc/drtpics.cc + dcmrt/libsrc/drtplan.cc + dcmrt/libsrc/drtporcs.cc + dcmrt/libsrc/drtporis.cc + dcmrt/libsrc/drtppcs.cc + dcmrt/libsrc/drtprsis.cc + dcmrt/libsrc/drtpscs.cc + dcmrt/libsrc/drtpsics.cc + dcmrt/libsrc/drtpss.cc + dcmrt/libsrc/drtpsss.cc + dcmrt/libsrc/drtpvis.cc + dcmrt/libsrc/drtqds.cc + dcmrt/libsrc/drtras.cc + dcmrt/libsrc/drtrbas2.cc + dcmrt/libsrc/drtrbas8.cc + dcmrt/libsrc/drtrbls.cc + dcmrt/libsrc/drtrbos1.cc + dcmrt/libsrc/drtrbos6.cc + dcmrt/libsrc/drtrbos7.cc + dcmrt/libsrc/drtrbs2.cc + dcmrt/libsrc/drtrbs4.cc + dcmrt/libsrc/drtrbs8.cc + dcmrt/libsrc/drtrcdrs.cc + dcmrt/libsrc/drtrcos.cc + dcmrt/libsrc/drtrcps.cc + dcmrt/libsrc/drtrcs.cc + dcmrt/libsrc/drtrdros.cc + dcmrt/libsrc/drtrdrs1.cc + dcmrt/libsrc/drtrdrs6.cc + dcmrt/libsrc/drtrdrs8.cc + dcmrt/libsrc/drtrds.cc + dcmrt/libsrc/drtrecs.cc + dcmrt/libsrc/drtrfgs.cc + dcmrt/libsrc/drtrfors.cc + dcmrt/libsrc/drtrics.cc + dcmrt/libsrc/drtrims.cc + dcmrt/libsrc/drtris.cc + dcmrt/libsrc/drtrlsds.cc + dcmrt/libsrc/drtrmdrs.cc + dcmrt/libsrc/drtrms.cc + dcmrt/libsrc/drtrmss6.cc + dcmrt/libsrc/drtrmss7.cc + dcmrt/libsrc/drtrpcs.cc + dcmrt/libsrc/drtrpis.cc + dcmrt/libsrc/drtrppcs.cc + dcmrt/libsrc/drtrpphs.cc + dcmrt/libsrc/drtrpps.cc + dcmrt/libsrc/drtrppss.cc + dcmrt/libsrc/drtrps.cc + dcmrt/libsrc/drtrris1.cc + dcmrt/libsrc/drtrris6.cc + dcmrt/libsrc/drtrris9.cc + dcmrt/libsrc/drtrrms.cc + dcmrt/libsrc/drtrros.cc + dcmrt/libsrc/drtrrpcs.cc + dcmrt/libsrc/drtrrros.cc + dcmrt/libsrc/drtrrs.cc + dcmrt/libsrc/drtrrshs.cc + dcmrt/libsrc/drtrrtps.cc + dcmrt/libsrc/drtrrtps3.cc + dcmrt/libsrc/drtrrtps4.cc + dcmrt/libsrc/drtrrtps5.cc + dcmrt/libsrc/drtrscs.cc + dcmrt/libsrc/drtrsers.cc + dcmrt/libsrc/drtrses.cc + dcmrt/libsrc/drtrshs.cc + dcmrt/libsrc/drtrshs6.cc + dcmrt/libsrc/drtrshs7.cc + dcmrt/libsrc/drtrsis.cc + dcmrt/libsrc/drtrsns.cc + dcmrt/libsrc/drtrsos.cc + dcmrt/libsrc/drtrsrs.cc + dcmrt/libsrc/drtrss.cc + dcmrt/libsrc/drtrsss.cc + dcmrt/libsrc/drtrsts.cc + dcmrt/libsrc/drtrtrs2.cc + dcmrt/libsrc/drtrtrs4.cc + dcmrt/libsrc/drtrvis.cc + dcmrt/libsrc/drtrws.cc + dcmrt/libsrc/drtrwvms.cc + dcmrt/libsrc/drtscris.cc + dcmrt/libsrc/drtscs.cc + dcmrt/libsrc/drtsdcs.cc + dcmrt/libsrc/drtsds.cc + dcmrt/libsrc/drtshds.cc + dcmrt/libsrc/drtsins.cc + dcmrt/libsrc/drtsis.cc + dcmrt/libsrc/drtsns.cc + dcmrt/libsrc/drtspccs.cc + dcmrt/libsrc/drtspcs.cc + dcmrt/libsrc/drtspgis.cc + dcmrt/libsrc/drtsptcs.cc + dcmrt/libsrc/drtss.cc + dcmrt/libsrc/drtssrcs.cc + dcmrt/libsrc/drtssrs.cc + dcmrt/libsrc/drtsss.cc + dcmrt/libsrc/drtstrct.cc + dcmrt/libsrc/drttms0.cc + dcmrt/libsrc/drttms9.cc + dcmrt/libsrc/drttreat.cc + dcmrt/libsrc/drttscds.cc + dcmrt/libsrc/drttsibs.cc + dcmrt/libsrc/drttsmds.cc + dcmrt/libsrc/drttts.cc + dcmrt/libsrc/drtudis.cc + dcmrt/libsrc/drtvls.cc + dcmrt/libsrc/drtwps.cc + dcmrt/libsrc/drtwrs.cc + dcmrt/libsrc/drtwrsrs.cc + dcmrt/libsrc/drtws.cc + dcmrt/libsrc/drtxrs.cc + +- Pass value of correct type to "size" parameter: + Pass value of correct type to "size" parameter of the getOutputData() + method of class DicomImage, i.e. "unsigned long" instead of "size_t". + This avoids a warning message being reported by certain compilers, e.g. + VisualStudio 2015 (x64). + Affects: dcmrt/libsrc/drmimage.cc + +- Added missing brackets to "if( || )" statement. + Affects: ofstd/tests/toffile.cc + +- Minor cleanup in dump output of TLS connections: + Fixed indentation and newlines in dump output of TLS connections. + Affects: dcmtls/libsrc/tlslayer.cc + dcmtls/libsrc/tlstrans.cc + +- Replaced remaining tabs by spaces. + Affects: dcmnet/libsrc/dcmtrans.cc + +**** Changes from 2017.01.23 (riesmeier) + +- Disable exception throwing in destructor: + Don't throw an exception from the destructor in order to avoid that the + application terminates abruptly. The original code line comes from the + underlying Log4cplus library. + Affects: oflog/libsrc/hierlock.cc + +**** Changes from 2017.01.20 (onken) + +- Added hints that memory has to be freed by caller: + Added hints that Segmentation and Tractography Results objects that are created + by the existing static methods have to be freed by the caller. + Affects: dcmseg/include/dcmtk/dcmseg/segdoc.h + dcmtract/include/dcmtk/dcmtract/trctractographyresults.h + +**** Changes from 2017.01.20 (riesmeier) + +- Enhanced comments on charset to library mapping: + Enhanced comments on the mapping between DICOM character sets and the + underlying conversion libraries. Also fixed various vaguenesses. + Bottom line is: only the GNU libiconv (as of version 1.14) supports ALL + character sets that are currently defined in the DICOM standard. Both ICU + and the stdlibc iconv() function lack support of some Japanese character + sets, e.g. "ISO-IR-87" (JIS X 0201) and "ISO-IR-159" (JIS X 0212). + Affects: dcmdata/libsrc/dcspchrs.cc + +- Included missing standard header "assert": + Added missing standard header "assert.h" or "cassert" in order to compile + when HAVE_STL and HAVE_STD_STRING are defined. This header file is needed + for Linux systems with gcc (and probably others). + Affects: dcmdata/libsrc/dcjson.cc + +- Removed unused variable from writeJsonOpener(). + Affects: dcmdata/libsrc/dcelem.cc + +- Added missing header include (without OpenSSL): + When compiled without OpenSSL support, the header file "dcmtrans.h" also + needs to be included for the new settings dcmSocketSend/ReceiveTimeout. + Affects: dcmnet/apps/storescp.cc + dcmnet/apps/storescu.cc + +- Fixed typos in API documentation. + Affects: dcmnet/include/dcmtk/dcmnet/dcmtrans.h + +**** Changes from 2017.01.19 (riesmeier) + +- Added new option --socket-timeout to storescu/scp: + Added new option --socket-timeout, which allows for specifying the timeout + for sending and receiving data on a network socket. A default of 60 seconds + is useful in cases where the sender (e.g. storescu) looses the connection + to the receiver (e.g. storescp) because the network cable is pulled or the + like. A value 0 means that the send() or recv() function never timeouts. + Affects: dcmnet/apps/storescp.cc + dcmnet/apps/storescu.cc + dcmnet/docs/storescp.man + dcmnet/docs/storescu.man + +- Made send() and recv() timeout configurable: + Made the timeout for the send() and recv() function configurable, i.e. the + default value of 60 seconds can now be changed at runtime. The previously + used macros DISABLE_RECV_TIMEOUT and DISABLE_SEND_TIMEOUT have, therefore, + become obsolete. + This partly closes DCMTK Bug #618. + Affects: config/docs/macros.txt + dcmnet/include/dcmtk/dcmnet/dcmtrans.h + dcmnet/libsrc/dcmtrans.cc + +- Added #warning on DONT_DISABLE_NAGLE_ALGORITHM: + Added warning during compilation if outdated DONT_DISABLE_NAGLE_ALGORITHM + is still used. Also readded this previously supported macro to the main + documentation file with a hint on the new behavior. + Affects: config/docs/macros.txt + dcmnet/libsrc/dul.cc + dcmnet/libsrc/dulfsm.cc + +- Minor corrections to documentation/comments. + Affects: dcmnet/include/dcmtk/dcmnet/dul.h + +- Simplified output of default option values: + Simplified output of default option values and also of the range of valid + values. This approach is now consistent with other tools like "storescu". + Affects: dcmnet/apps/storescp.cc + +**** Changes from 2017.01.19 (onken) + +- Fixed potential NULL pointer and implicit casts: + Two potential NULL pointer derefences have been fixed as well as various + implicit casts that could lead to data loss. Guards have been added where + necessary and remaining (safe) casts have been made explicit. + Affects: dcmiod/include/dcmtk/dcmiod/iodutil.h + dcmiod/libsrc/iodutil.cc + dcmnet/apps/getscu.cc + dcmnet/apps/storescu.cc + dcmpmap/libsrc/dpmparametricmapiod.cc + dcmseg/include/dcmtk/dcmseg/segtypes.h + dcmseg/libsrc/segdoc.cc + +- Fixed (harmless) shadowed variabl. + Affects: dcmfg/libsrc/fgframeanatomy.cc + +**** Changes from 2017.01.18 (riesmeier) + +- Do not pass simple const parameters by reference. + Affects: dcmnet/include/dcmtk/dcmnet/assoc.h + dcmnet/libsrc/assoc.cc + +- Do not disable Nagle algorithm by default: + Beginning with DCMTK 3.4.1, the so-called Nagle algorithm was disabled by + default for each DICOM transport connection in order to increase the network + performance, especially on Windows systems. However, on most modern operating + systems this default does not seem to be appropriate anymore. Therefore, the + default has been changed and the compiler macro DONT_DISABLE_NAGLE_ALGORITHM + has been replaced by DISABLE_NAGLE_ALGORITHM, so at compilation time the Nagle + algorithm can still be disabled (if needed). In addition, the environment + variable NO_TCPDELAY allows for changing this default at runtime. + See "config/docs/macros.txt" and "config/docs/envvars.txt" for details. + Closes DCMTK Feature #364. + Affects: config/docs/envvars.txt + config/docs/macros.txt + dcmnet/libsrc/dul.cc + dcmnet/libsrc/dulfsm.cc + +- Fixed maximum number of bytes to read from stdin: + Limit maximum number of bytes to read from stdin in order to avoid a + possible buffer overflow. This issue has been reported by the static + code analysis tool of VisualStudio 2015. + Also fixed various typos in comments. + Affects: dcmnet/apps/storescp.cc + dcmwlm/libsrc/wlmactmg.cc + +- Replaced binary ("&") by boolean ("&&") AND. + Affects: dcmdata/libsrc/dcddirif.cc + +- Fixed warnings reported by VisualStudio 2015: + Added explicit typecasts in order to avoid warnings of type C4267 + "possible loss of data" reported by VisualStudio 2015. + Affects: dcmnet/include/dcmtk/dcmnet/dcuserid.h + dcmnet/libsrc/assoc.cc + dcmnet/libsrc/dcuserid.cc + dcmnet/libsrc/dulconst.cc + dcmpstat/libsrc/dvpstat.cc + +- Updated latest tested CMake version: + Updated information on latest CMake version that has been tested to "3.7.2". + Affects: CMake/dcmtkPrepare.cmake + +**** Changes from 2017.01.17 (onken) + +- Avoid another variable shadow warning. + Affects: dcmpmap/libsrc/dpmparametricmapiod.cc + +- Print conn. timeout to TRACE instead DEBUG level: + If select() runs into a timeout when listening for TCP connections, a message + was printed to the DEBUG log level. Since this can occur quite often (depending + on the timeout), the message has been moved to the TRACE logger instead. + Affects: dcmnet/libsrc/diutil.cc + +- Fixed warning about unused parameter. + Affects: ofstd/include/dcmtk/ofstd/ofoption.h + +- Fixed warnings about overloaded virtual functions. + Affects: dcmtract/include/dcmtk/dcmtract/trcstatistic.h + dcmtract/libsrc/trcstatistic.cc + +- Avoid warnings about shadowed names. + Affects: dcmfg/libsrc/fg.cc + dcmiod/tests/tcielabutil.cc + +**** Changes from 2017.01.16 (riesmeier) + +- Do not set TCP send and receive buffer length: + By default, don't set the TCP send and receive buffer length anymore since + modern operating systems know much better what appropriate values are. If + the user wants, he can still specify a certain buffer length by using the + environment variable TCP_BUFFER_LENGTH (which was already supported by + previous versions of the DCMTK). + Thanks to Alexander Haderer for the suggested + patch and forum user "tpalagyi" (and others) for the original report. + Closes DCMTK Feature #597. + Affects: config/docs/envvars.txt + dcmnet/libsrc/dul.cc + dcmnet/libsrc/dulfsm.cc + +- Removed DCMTK's implementation of tempnam(): + Removed DCMTK's implementation of tempnam() since it is not used any longer. + Also removed related documentation on environment variable TMPDIR. + Affects: config/docs/envvars.txt + dcmnet/include/dcmtk/dcmnet/dcompat.h + dcmnet/libsrc/dcompat.cc + +**** Changes from 2017.01.14 (riesmeier) + +- Added another character set test (for ISO-IR 149): + Added another character set conversion test that checks for the automatic + detection of 8- vs. 16-bit characters when using "ISO 2022 IR 149". + Affects: dcmdata/tests/tspchrs.cc + +**** Changes from 2017.01.13 (riesmeier) + +- Fixed issue with wrong detection of delimiters: + Fixed issue with wrong detection of delimiters (such as a backslash) when + converting a character string with multi-byte character set and code + extensions. Also enhanced support for character sets that use one or two + bytes per character such as "ISO 2022 IR 149". + Thanks to Bhuvan Bose for the original report and + for the sample DICOM object (using "\ISO 2022 IR 87" character set). + Closes DCMTK Bug #684. + Affects: dcmdata/libsrc/dcspchrs.cc + +- Updated documentation regarding HT delimiter: + Updated documentation regarding the horizontal tab (HT) character being one + of the standard delimiters. + Affects: dcmdata/include/dcmtk/dcmdata/dcspchrs.h + dcmdata/libsrc/dcspchrs.cc + +- Added another character set test (for ISO-IR 58): + Added another character set test based on the example from DICOM PS3.5 K.2. + This test uses GB 2312 (registered as ISO-IR 58), i.e. Simplified Chinese. + Affects: dcmdata/tests/tspchrs.cc + +**** Changes from 2017.01.09 (onken) + +- Fixed various documentation issues: + Fixed doxygen warnings by adding missing documentation of parameters and + return values as well as doubled section labels in dcmnet documentation that + also occur in other DCMTK modules. + Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h + dcmiod/include/dcmtk/dcmiod/iodmacro.h + dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h + dcmiod/include/dcmtk/dcmiod/modsynchronisation.h + dcmnet/docs/cptscp.dox + dcmnet/docs/dcmnet.dox + dcmnet/docs/dcmrecv.man + dcmnet/docs/dcmsend.man + dcmnet/docs/echoscu.man + dcmnet/docs/findscu.man + dcmnet/docs/getscu.man + dcmnet/docs/movescu.man + dcmnet/docs/storescp.man + dcmnet/docs/storescu.man + dcmnet/docs/termscu.man + dcmnet/include/dcmtk/dcmnet/dcuserid.h + dcmnet/include/dcmtk/dcmnet/scpcfg.h + dcmpmap/docs/dcmpmap.dox + dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h + dcmseg/include/dcmtk/dcmseg/segdoc.h + +**** Changes from 2017.01.06 (onken) + +- Better SCP timeouts, test, cleanups and more docs: + A new possibility was added to return from DcmSCP's listen() loop in + non-blocking mode. A dedicated return code has been added, as well as + for the existing "stop after current association" feature. A test was added + to ensure DcmSCP works as expected. + Some methods have been cleaned up, especially calls for freeing association + structures have been concentrated into a single call. + Some further documentation was added, including possible return codes of + some important methods. + Added: dcmnet/tests/tscuscp.cc + Affects: dcmnet/apps/Makefile.dep + dcmnet/include/dcmtk/dcmnet/cond.h + dcmnet/include/dcmtk/dcmnet/scp.h + dcmnet/libsrc/Makefile.dep + dcmnet/libsrc/cond.cc + dcmnet/libsrc/scp.cc + dcmnet/tests/CMakeLists.txt + dcmnet/tests/Makefile.dep + dcmnet/tests/Makefile.in + dcmnet/tests/tests.cc + +**** Changes from 2017.01.06 (riesmeier) + +- Removed "dcmwlm/wwwapps" from ".gitignore": + Removed retired "wwwapps" of the Worklist Management SCP module from the + ".gitignore" file. + Affects: .gitignore + +- Added Manpage of recently introduced dcm2json tool. + Added: doxygen/manpages/man1/dcm2json.1 + +- Let git ignore recently introduced dcm2json tool. + Affects: .gitignore + +- Added a section on the rendering limitations: + Added a section to the manpage that describes the (current) limitations + when rendering a GSPS object, e.g. textual and graphical annotations are + not supported. + Closes DCMTK Feature #665. + Affects: dcmpstat/docs/dcmp2pgm.man + +- Fixed incomplete renaming of command line options: + Fixed incomplete renaming of command line options --illegal-obow-reject, + --illegal-obow-convert, --illegal-voi-reject and --illegal-voi-convert, + which was done with commit 0b36181. Now, these options should work again + as expected since the correct option names are checked. + Affects: dcmdata/apps/dcmconv.cc + dcmdata/apps/dcmdump.cc + +- Removed unused configure variable/definition: + Remove unused GNU Autoconf (aka "./configure") variable/definition + DCMTK_ENABLE_BUILTIN_DICTIONARY. Seems to be a leftover from a previous + implementation attempt that has not been committed. + Affects: config/Makefile.def.in + config/configure + config/configure.in + +**** Changes from 2017.01.02 (onken) + +- Fixed installation of DCMTKConfigVersion.cmake: + DCMTKConfigVersion.cmake has not been installed, thus leading to an error + when importing DCMTK through find_package() with a specified version from + other CMake-based projects. + Thanks to Waldir Pimenta for the report and + suggested patch. + Closes DCMTK Bug #708. + Affects: CMake/GenerateCMakeExports.cmake + CMakeLists.txt + +**** Changes from 2016.12.16 (eichelberg) + +- Fixed integer underflow condition: + Minor fix to avoid a (harmless) integer underflow reported by + clang with -fsanitize=integer. + Affects: dcmdata/libsrc/dcstack.cc + +**** Changes from 2016.12.14 (schlamelcher) + +- Added magic word and version checks to dcmqrdb: + All dcmqrdb applications will now prefix the index file with the magic word + 'QRDB' followed by two hexadecimal version digits. Both will be verified + whenever an existing index file is opened for reading/modification. + Please note that index files with the same magic word and version might still + be binary incompatible with each other if they originate from different + platforms (e.g. with different endianness or alignment). This mechanism is + meant to catch cases where the index must be re-created due to dcmtk updates. + Don't forget to re-create your database indices using dcmqridx. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqrdbi.h + dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + dcmqrdb/libsrc/dcmqrdbi.cc + +**** Changes from 2016.12.13 (riesmeier) + +- Further fixes to source code formatting. + Affects: dcmdata/apps/dcm2json.cc + +- Various minor fixes to new "dcm2json" tool: + Various minor fixes to the new "dcm2json" tool regarding documentation, + source code formatting, etc. + Affects: dcmdata/apps/dcm2json.cc + dcmdata/docs/dcm2json.man + +**** Changes from 2016.12.13 (schlamelcher) + +- Fixed oflog character set conversion defines. + Affects: oflog/include/dcmtk/oflog/config/defines.h + +- Fixed dcm2json when compiling as shared libraries. + Affects: dcmdata/include/dcmtk/dcmdata/dcjson.h + +**** Changes from 2016.12.12 (schlamelcher) + +- Fixed a comment in OFCharacterEncoding: + A recently added comment for the iconv specific OFCharacterEncoding + implementation was (falsely) referring to the ICU. + Affects: ofstd/libsrc/ofchrenc.cc + +**** Changes from 2016.12.12 (grallert) + +- Added support for the DICOM JSON Model (part 18 F): + Introduced new DICOM to JSON converter that can be utilized to implement + web applications. JSON to DICOM conversion is currently not implemented. + Added: dcmdata/apps/dcm2json.cc + dcmdata/docs/dcm2json.man + dcmdata/include/dcmtk/dcmdata/dcjson.h + dcmdata/libsrc/dcjson.cc + Affects: dcmdata/apps/CMakeLists.txt + dcmdata/apps/Makefile.in + dcmdata/docs/dcmdata.dox + dcmdata/include/dcmtk/dcmdata/dcbytstr.h + dcmdata/include/dcmtk/dcmdata/dcchrstr.h + dcmdata/include/dcmtk/dcmdata/dcdatset.h + dcmdata/include/dcmtk/dcmdata/dcelem.h + dcmdata/include/dcmtk/dcmdata/dcerror.h + dcmdata/include/dcmtk/dcmdata/dcfilefo.h + dcmdata/include/dcmtk/dcmdata/dcitem.h + dcmdata/include/dcmtk/dcmdata/dcmetinf.h + dcmdata/include/dcmtk/dcmdata/dcobject.h + dcmdata/include/dcmtk/dcmdata/dcsequen.h + dcmdata/include/dcmtk/dcmdata/dcvrat.h + dcmdata/include/dcmtk/dcmdata/dcvrds.h + dcmdata/include/dcmtk/dcmdata/dcvris.h + dcmdata/include/dcmtk/dcmdata/dcvrlo.h + dcmdata/include/dcmtk/dcmdata/dcvrobow.h + dcmdata/include/dcmtk/dcmdata/dcvrod.h + dcmdata/include/dcmtk/dcmdata/dcvrof.h + dcmdata/include/dcmtk/dcmdata/dcvrol.h + dcmdata/include/dcmtk/dcmdata/dcvrpn.h + dcmdata/include/dcmtk/dcmdata/dcvrsh.h + dcmdata/libsrc/CMakeLists.txt + dcmdata/libsrc/Makefile.in + dcmdata/libsrc/dcbytstr.cc + dcmdata/libsrc/dcchrstr.cc + dcmdata/libsrc/dcdatset.cc + dcmdata/libsrc/dcelem.cc + dcmdata/libsrc/dcfilefo.cc + dcmdata/libsrc/dcitem.cc + dcmdata/libsrc/dcmetinf.cc + dcmdata/libsrc/dcobject.cc + dcmdata/libsrc/dcsequen.cc + dcmdata/libsrc/dcvrat.cc + dcmdata/libsrc/dcvrds.cc + dcmdata/libsrc/dcvris.cc + dcmdata/libsrc/dcvrlo.cc + dcmdata/libsrc/dcvrobow.cc + dcmdata/libsrc/dcvrod.cc + dcmdata/libsrc/dcvrof.cc + dcmdata/libsrc/dcvrol.cc + dcmdata/libsrc/dcvrpn.cc + dcmdata/libsrc/dcvrsh.cc + +**** Changes from 2016.12.09 (riesmeier) + +- Avoid compiler warning on unused parameter: + Avoid compiler warning on unused parameter, e.g. when compiling with gcc + -Wextra. Also the read and write item methods return EC_NotYetImplemented + instead of EC_Normal since no real content is ever read or written. + Closes DCMTK Bug #705. + Affects: dcmrt/libsrc/drtmas.cc + +**** Changes from 2016.12.08 (riesmeier) + +- Added comments on ICU conversions flags: + Added comments that ICU also supports other "conversions flags" and that + the (currently, very basic) implementation might be enhanced in the future. + Affects: ofstd/libsrc/ofchrenc.cc + +- Fixed wrong check on GLIBC macro: + Instead of "__GLIBC__" the macro "__GLIBC_" was checked, i.e. one trailing + underscore character was missing. + Affects: ofstd/libsrc/ofchrenc.cc + +**** Changes from 2016.12.07 (riesmeier) + +- Added missing period at the end of descriptions: + Added missing period at the end of some CMake variable/option descriptions + (for reasons of consistency). + Affects: CMake/GenerateDCMTKConfigure.cmake + CMake/dcmtkPrepare.cmake + +- Renamed isAvailable() and getVersionString(): + Renamed the methods isAvailable() and getVersionString() back to their + original names, i.e. as they have been before the "refactoring". Now, + it is more consistent with other "libraries" used (e.g. "IJG" for JPEG) + and also easier to understand for a user of the API. + Affects: dcmdata/apps/dcm2xml.cc + dcmdata/apps/dcmconv.cc + dcmdata/apps/dcmdump.cc + dcmdata/libsrc/dcspchrs.cc + dcmsr/apps/dsr2html.cc + dcmsr/apps/dsr2xml.cc + dcmsr/apps/dsrdump.cc + ofstd/include/dcmtk/ofstd/ofchrenc.h + ofstd/libsrc/ofchrenc.cc + ofstd/tests/tchrenc.cc + +- Fixed source code formatting (where appropriate): + Fixed source code formatting after the character set conversion classes have + been "refactored". Now, the formatting should be (a little) more consistenti + than before. + Affects: dcmdata/include/dcmtk/dcmdata/dcspchrs.h + dcmdata/libsrc/dcdirrec.cc + dcmdata/libsrc/dcitem.cc + dcmdata/libsrc/dcspchrs.cc + ofstd/libsrc/ofchrenc.cc + +- Updated note on character set conversion options: + Updated note on the character set conversion options: Now, this conversion + does not only rely on "libiconv". The available character encoding library + is shown in the output of --version. + Affects: dcmdata/docs/dcm2xml.man + dcmdata/docs/dcmconv.man + dcmdata/docs/dcmdump.man + dcmsr/docs/dsr2html.man + dcmsr/docs/dsr2xml.man + dcmsr/docs/dsrdump.man + +- Fixed various documentation issues: + Fixed various documentation and Doxygen-related issues that were introduced + with the "refactoring" of the character set conversion classes. + Affects: dcmdata/include/dcmtk/dcmdata/dcspchrs.h + ofstd/include/dcmtk/ofstd/ofchrenc.h + +**** Changes from 2016.12.07 (schlamelcher) + +- Several fixes regarding character set conversion: + Fixed building with enabled C++11 support. + Fixed the code to suppress unnecessary warnings about TheImplementation being + in the wrong #if - #else - #endif segment. + Fixed building with iconv from another C standard library than the GNU one. + Renamed some macros/settings to reflect above changes (gnuc -> stdlibc etc.). + Affects: CMake/3rdparty.cmake + CMake/GenerateDCMTKConfigure.cmake + CMake/osconfig.h.in + config/configure + config/configure.in + config/include/dcmtk/config/osconfig.h.in + dcmdata/libsrc/dcspchrs.cc + ofstd/libsrc/ofchrenc.cc + +**** Changes from 2016.12.06 (riesmeier) + +- Changed the way an unused parameter is treated: + Now, the approach is identical to a similar notifyXXX() method. + Affects: dcmnet/libsrc/dstorscu.cc + +**** Changes from 2016.12.06 (grallert) + +- Fixed suppressing overflow warnings with Clang: + Changed -Woverflow to -Winteger-overflow. The -Woverflow flag exists for GCC + compatibility only and has no effect for Clang. + Affects: ofstd/include/dcmtk/ofstd/diag/overflow.def + +**** Changes from 2016.12.06 (schlamelcher) + +- Refactored character set conversion classes: + Refactored character set conversion to support additional implementations, + currently also the International Components for Unicode (ICU) and the ICONV + implementation builtin the GNU C library are also supported, in addition to + the already supported external ICONV library. + Added: CMake/FindICU.cmake + Affects: CMake/3rdparty.cmake + CMake/GenerateDCMTKConfigure.cmake + CMake/dcmtkPrepare.cmake + CMake/osconfig.h.in + config/Makefile.def.in + config/configure + config/configure.in + config/include/dcmtk/config/osconfig.h.in + dcmdata/apps/Makefile.in + dcmdata/apps/dcm2xml.cc + dcmdata/apps/dcmconv.cc + dcmdata/apps/dcmdump.cc + dcmdata/include/dcmtk/dcmdata/dcspchrs.h + dcmdata/libsrc/Makefile.in + dcmdata/libsrc/dcdirrec.cc + dcmdata/libsrc/dcitem.cc + dcmdata/libsrc/dcspchrs.cc + dcmdata/tests/Makefile.in + dcmdata/tests/tspchrs.cc + dcmimage/apps/Makefile.in + dcmimgle/apps/Makefile.in + dcmiod/tests/Makefile.in + dcmjpeg/apps/Makefile.in + dcmjpls/apps/Makefile.in + dcmnet/apps/Makefile.in + dcmnet/tests/Makefile.in + dcmpstat/apps/Makefile.in + dcmpstat/tests/Makefile.in + dcmqrdb/apps/Makefile.in + dcmrt/apps/Makefile.in + dcmrt/tests/Makefile.in + dcmseg/tests/Makefile.in + dcmsign/apps/Makefile.in + dcmsr/apps/Makefile.in + dcmsr/apps/dsr2html.cc + dcmsr/apps/dsr2xml.cc + dcmsr/apps/dsrdump.cc + dcmsr/tests/Makefile.in + dcmwlm/apps/Makefile.in + dcmwlm/tests/Makefile.in + ofstd/include/dcmtk/ofstd/ofchrenc.h + ofstd/libsrc/CMakeLists.txt + ofstd/libsrc/ofchrenc.cc + ofstd/libsrc/ofconapp.cc + ofstd/tests/Makefile.in + ofstd/tests/tchrenc.cc + +**** Changes from 2016.12.01 (riesmeier) + +- Added (missing) comments. + Affects: dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h + +**** Changes from 2016.11.30 (riesmeier) + +- Limit number of entries in optimization LUT: + Made sure that the number of look-up table entries used internally for + the optimized pixel data processing does not exceed a certain limit. + Especially, made sure that there is no numeric oveflow, which resulted + in a segmentation fault on 32-bit systems when processing DICOM images + with high bit depth (e.g. Bits Allocated / Stored = 32). + Thanks to John Stark for the original report. + Closes DCMTK Bug #696. + Affects: dcmimgle/include/dcmtk/dcmimgle/diinpxt.h + dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h + +**** Changes from 2016.11.29 (riesmeier) + +- Added missing API documentation (Doxygen): + Added missing API documentation for Doxygen, e.g. undocumented parameters + or return values. + Affects: oflog/include/dcmtk/oflog/oflog.h + +**** Changes from 2016.11.28 (riesmeier) + +- Added "Simplified Adult Echo SR" to ReportType. + Affects: dcmsr/data/dsr2xml.xsd + +- Added missing character sets to XML Schema: + Added various Asian character sets to the XML Schema. Support for these + character sets was added to the C++ implementation some time ago but the + XML Schema was - apparently - not updated. + Affects: dcmsr/data/dsr2xml.xsd + +- Added tests for "new" Chinese characters sets: + Added tests for Chinese character sets that were introduced with CP-1234: + GB 2312 (also known as ISO-2022-CN) and GBK (a subset of GB 18030). + Currently, it is only checked whether the associated Defined Terms for + the Specific Character Set attribute are really supported. + Affects: dcmdata/tests/tspchrs.cc + +- Added missing API documentation for Doxygen: + Added missing API documentation for Doxygen, e.g. undocumented parameters + or return values. Also fixed some typos in comments. + Affects: dcmdata/include/dcmtk/dcmdata/dcbytstr.h + dcmdata/include/dcmtk/dcmdata/dccodec.h + dcmdata/include/dcmtk/dcmdata/dcdatset.h + dcmdata/include/dcmtk/dcmdata/dcddirif.h + dcmdata/include/dcmtk/dcmdata/dcelem.h + dcmdata/include/dcmtk/dcmdata/dcfilefo.h + dcmdata/include/dcmtk/dcmdata/dcmetinf.h + dcmdata/include/dcmtk/dcmdata/dcobject.h + dcmdata/include/dcmtk/dcmdata/dcovlay.h + dcmdata/include/dcmtk/dcmdata/dcpixseq.h + dcmdata/include/dcmtk/dcmdata/dcpxitem.h + dcmdata/include/dcmtk/dcmdata/dcsequen.h + dcmdata/include/dcmtk/dcmdata/dcvr.h + dcmdata/include/dcmtk/dcmdata/dcvrpobw.h + dcmdata/include/dcmtk/dcmdata/dcvruc.h + dcmdata/include/dcmtk/dcmdata/dcvrulup.h + dcmdata/include/dcmtk/dcmdata/dcvrur.h + dcmdata/include/dcmtk/dcmdata/dcvrut.h + +- Replaced boolean modes in convertCharacterSet(): + Replaced boolean parameters "transliterate" and "discardIllegal" of the + convertCharacterSet() methods by a single "flags" parameter (as it is + used for other similar methods in the various "dcmdata" classes). This + allows for adding further "modes" in the future without changing the + signature of the character set conversion methods. + Closes DCMTK Feature #579. + Affects: dcmdata/apps/dcmconv.cc + dcmdata/include/dcmtk/dcmdata/dcdirrec.h + dcmdata/include/dcmtk/dcmdata/dcfilefo.h + dcmdata/include/dcmtk/dcmdata/dcitem.h + dcmdata/include/dcmtk/dcmdata/dctypes.h + dcmdata/libsrc/dcdirrec.cc + dcmdata/libsrc/dcfilefo.cc + dcmdata/libsrc/dcitem.cc + dcmdata/libsrc/dctypes.cc + +**** Changes from 2016.11.25 (riesmeier) + +- Check return value of write() to avoid warning: + Added check on return value of write() function in order to avoid a warning + message reported by gcc (on some systems with certain flags, e.g. Ubuntu). + This finally closes DCMTK Bug #379. + Affects: dcmqrdb/libsrc/dcmqrdbi.cc + +- Check return value of fgets() to avoid warnings: + Added check on return value of fgets() function in order to avoid warning + messages reported by gcc (on some systems with certain flags, e.g. Ubuntu). + Also fixed various typos in log messages and comments. + This partly closes DCMTK Bug #379. + Affects: dcmqrdb/libsrc/dcmqrcnf.cc + +**** Changes from 2016.11.25 (eichelberg) + +- Use fseek() instead of rewind() on Win32/Cygwin: + On Win32 and Cygwin systems, rewind() fails if the file is read-only + and was read to EOF before the call to rewind(). Now using fseek() + instead in OFFile::rewind(). + This fixes bug #378. + Affects: ofstd/include/dcmtk/ofstd/offile.h + +- Increased buffer sizes to avoid buffer overflows: + Increased buffer sizes to size of input string avoid possible buffer + overflows caused by calls to sscanf with %s parameter. + This closes bug #376. + Affects: dcmqrdb/libsrc/dcmqrcnf.cc + dcmqrdb/libsrc/dcmqrtis.cc + +- Minor change needed to compile on Cygwin 2.6.0. + Affects: ofstd/libsrc/ofstd.cc + +**** Changes from 2016.11.24 (eichelberg) + +- Fixed signed/unsigned comparison in dcmqrdb module: + Fixed signed/unsigned comparison in dcmqrdb module. + WARNING: This change affects the binary format of the index.dat file, + although only very large images > 2 GB are affected by the change. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + +- Documented new movescu return codes in man page. + Affects: dcmnet/docs/movescu.man + +- movescu now returns non-zero if c-move was unsuccessful: + The movescu command line application now returns non-zero if the + status of one or more c-move responses is warning or error and also + prints a warning message to the logger. This simplifies the use of the + tool in shell scripts, which can check for the return code. + This closes feature request #652. + Affects: dcmnet/apps/movescu.cc + +**** Changes from 2016.11.23 (schlamelcher) + +- Fixed an OFnumeric_limits problem regarding C++11: + The previous fix for OFnumeric_limits did not consider the availability of + C++11's std::numeric_limits, leading to name clashes if C++11 support was + enabled. + Affects: ofstd/libsrc/oflimits.cc + +**** Changes from 2016.11.23 (riesmeier) + +- Updated "dcmrt" classes based on DICOM 2016e: + Updated automatically generated IOD and sequence C++ classes for the various + RT objects based on the current edition of the DICOM standard (2016e). There + were only very few changes. + Affects: dcmrt/include/dcmtk/dcmrt/drtdose.h + dcmrt/include/dcmtk/dcmrt/drtimage.h + dcmrt/include/dcmtk/dcmrt/drtionpl.h + dcmrt/include/dcmtk/dcmrt/drtiontr.h + dcmrt/include/dcmtk/dcmrt/drtplan.h + dcmrt/include/dcmtk/dcmrt/drtstrct.h + dcmrt/include/dcmtk/dcmrt/drttreat.h + dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtads.h + dcmrt/include/dcmtk/dcmrt/seq/drtafs.h + dcmrt/include/dcmtk/dcmrt/seq/drtags.h + dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtas1.h + dcmrt/include/dcmtk/dcmrt/seq/drtas5.h + dcmrt/include/dcmtk/dcmrt/seq/drtas6.h + dcmrt/include/dcmtk/dcmrt/seq/drtas7.h + dcmrt/include/dcmtk/dcmrt/seq/drtass.h + dcmrt/include/dcmtk/dcmrt/seq/drtbads.h + dcmrt/include/dcmtk/dcmrt/seq/drtbas.h + dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h + dcmrt/include/dcmtk/dcmrt/seq/drtccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h + dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtces.h + dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtchs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcims.h + dcmrt/include/dcmtk/dcmrt/seq/drtcis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtdias.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtds.h + dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drteas.h + dcmrt/include/dcmtk/dcmrt/seq/drtecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfds.h + dcmrt/include/dcmtk/dcmrt/seq/drtfes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h + dcmrt/include/dcmtk/dcmrt/seq/drtfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtgas.h + dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h + dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiais.h + dcmrt/include/dcmtk/dcmrt/seq/drtians.h + dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h + dcmrt/include/dcmtk/dcmrt/seq/drtibls.h + dcmrt/include/dcmtk/dcmrt/seq/drtibs.h + dcmrt/include/dcmtk/dcmrt/seq/drticpds.h + dcmrt/include/dcmtk/dcmrt/seq/drticps.h + dcmrt/include/dcmtk/dcmrt/seq/drtics.h + dcmrt/include/dcmtk/dcmrt/seq/drtiis.h + dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h + dcmrt/include/dcmtk/dcmrt/seq/drtircs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h + dcmrt/include/dcmtk/dcmrt/seq/drtitts.h + dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtiws.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h + dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h + dcmrt/include/dcmtk/dcmrt/seq/drtmas.h + dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtmls.h + dcmrt/include/dcmtk/dcmrt/seq/drtmps.h + dcmrt/include/dcmtk/dcmrt/seq/drtmris.h + dcmrt/include/dcmtk/dcmrt/seq/drtmss.h + dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h + dcmrt/include/dcmtk/dcmrt/seq/drtoas.h + dcmrt/include/dcmtk/dcmrt/seq/drtois.h + dcmrt/include/dcmtk/dcmrt/seq/drtopis.h + dcmrt/include/dcmtk/dcmrt/seq/drtos.h + dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h + dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtpics.h + dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtporis.h + dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h + dcmrt/include/dcmtk/dcmrt/seq/drtpss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtqds.h + dcmrt/include/dcmtk/dcmrt/seq/drtras.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h + dcmrt/include/dcmtk/dcmrt/seq/drtrics.h + dcmrt/include/dcmtk/dcmrt/seq/drtrims.h + dcmrt/include/dcmtk/dcmrt/seq/drtris.h + dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h + dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h + dcmrt/include/dcmtk/dcmrt/seq/drtrses.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrws.h + dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h + dcmrt/include/dcmtk/dcmrt/seq/drtscris.h + dcmrt/include/dcmtk/dcmrt/seq/drtscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtshds.h + dcmrt/include/dcmtk/dcmrt/seq/drtsins.h + dcmrt/include/dcmtk/dcmrt/seq/drtsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtss.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsss.h + dcmrt/include/dcmtk/dcmrt/seq/drttms0.h + dcmrt/include/dcmtk/dcmrt/seq/drttms9.h + dcmrt/include/dcmtk/dcmrt/seq/drttscds.h + dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h + dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h + dcmrt/include/dcmtk/dcmrt/seq/drttts.h + dcmrt/include/dcmtk/dcmrt/seq/drtudis.h + dcmrt/include/dcmtk/dcmrt/seq/drtvls.h + dcmrt/include/dcmtk/dcmrt/seq/drtwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtws.h + dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h + dcmrt/libsrc/drtaadcs.cc + dcmrt/libsrc/drtadcs.cc + dcmrt/libsrc/drtads.cc + dcmrt/libsrc/drtafs.cc + dcmrt/libsrc/drtags.cc + dcmrt/libsrc/drtajcs.cc + dcmrt/libsrc/drtas1.cc + dcmrt/libsrc/drtas5.cc + dcmrt/libsrc/drtas6.cc + dcmrt/libsrc/drtas7.cc + dcmrt/libsrc/drtass.cc + dcmrt/libsrc/drtbads.cc + dcmrt/libsrc/drtbas.cc + dcmrt/libsrc/drtbcps.cc + dcmrt/libsrc/drtbl2.cc + dcmrt/libsrc/drtbl5.cc + dcmrt/libsrc/drtbldls.cc + dcmrt/libsrc/drtbldps.cc + dcmrt/libsrc/drtblds1.cc + dcmrt/libsrc/drtblds5.cc + dcmrt/libsrc/drtblds6.cc + dcmrt/libsrc/drtbldts.cc + dcmrt/libsrc/drtbrcss.cc + dcmrt/libsrc/drtbrdrs.cc + dcmrt/libsrc/drtbrs.cc + dcmrt/libsrc/drtbs.cc + dcmrt/libsrc/drtbss.cc + dcmrt/libsrc/drtbvcps.cc + dcmrt/libsrc/drtcbars.cc + dcmrt/libsrc/drtccs.cc + dcmrt/libsrc/drtcctus.cc + dcmrt/libsrc/drtcdrs.cc + dcmrt/libsrc/drtces.cc + dcmrt/libsrc/drtcgis.cc + dcmrt/libsrc/drtchs.cc + dcmrt/libsrc/drtcims.cc + dcmrt/libsrc/drtcis.cc + dcmrt/libsrc/drtcncs.cc + dcmrt/libsrc/drtcos.cc + dcmrt/libsrc/drtcpas.cc + dcmrt/libsrc/drtcpis.cc + dcmrt/libsrc/drtcps.cc + dcmrt/libsrc/drtcs.cc + dcmrt/libsrc/drtcsas.cc + dcmrt/libsrc/drtcshs.cc + dcmrt/libsrc/drtcsis.cc + dcmrt/libsrc/drtcss.cc + dcmrt/libsrc/drtdcs.cc + dcmrt/libsrc/drtdddps.cc + dcmrt/libsrc/drtddps.cc + dcmrt/libsrc/drtdias.cc + dcmrt/libsrc/drtdimcs.cc + dcmrt/libsrc/drtdimrs.cc + dcmrt/libsrc/drtdirs.cc + dcmrt/libsrc/drtdose.cc + dcmrt/libsrc/drtdrs.cc + dcmrt/libsrc/drtds.cc + dcmrt/libsrc/drtdspcs.cc + dcmrt/libsrc/drtdss.cc + dcmrt/libsrc/drtdvhs.cc + dcmrt/libsrc/drtdvrrs.cc + dcmrt/libsrc/drteas.cc + dcmrt/libsrc/drtecs.cc + dcmrt/libsrc/drtes.cc + dcmrt/libsrc/drtfds.cc + dcmrt/libsrc/drtfes.cc + dcmrt/libsrc/drtfgs.cc + dcmrt/libsrc/drtfgss.cc + dcmrt/libsrc/drtfms.cc + dcmrt/libsrc/drtfsss.cc + dcmrt/libsrc/drtgas.cc + dcmrt/libsrc/drtgpis.cc + dcmrt/libsrc/drthsdrs.cc + dcmrt/libsrc/drtiais.cc + dcmrt/libsrc/drtians.cc + dcmrt/libsrc/drtiblds.cc + dcmrt/libsrc/drtibls.cc + dcmrt/libsrc/drtibs.cc + dcmrt/libsrc/drticpds.cc + dcmrt/libsrc/drticps.cc + dcmrt/libsrc/drtics.cc + dcmrt/libsrc/drtiis.cc + dcmrt/libsrc/drtimage.cc + dcmrt/libsrc/drtionpl.cc + dcmrt/libsrc/drtiontr.cc + dcmrt/libsrc/drtipiqs.cc + dcmrt/libsrc/drtircs.cc + dcmrt/libsrc/drtiseis.cc + dcmrt/libsrc/drtitts.cc + dcmrt/libsrc/drtiwps.cc + dcmrt/libsrc/drtiws.cc + dcmrt/libsrc/drtlsds.cc + dcmrt/libsrc/drtlsds6.cc + dcmrt/libsrc/drtlsds7.cc + dcmrt/libsrc/drtmacds.cc + dcmrt/libsrc/drtmas.cc + dcmrt/libsrc/drtmdrs.cc + dcmrt/libsrc/drtmls.cc + dcmrt/libsrc/drtmps.cc + dcmrt/libsrc/drtmris.cc + dcmrt/libsrc/drtmss.cc + dcmrt/libsrc/drtmucs.cc + dcmrt/libsrc/drtoas.cc + dcmrt/libsrc/drtois.cc + dcmrt/libsrc/drtopis.cc + dcmrt/libsrc/drtos.cc + dcmrt/libsrc/drtpbcs.cc + dcmrt/libsrc/drtpcs.cc + dcmrt/libsrc/drtpcxs.cc + dcmrt/libsrc/drtpdecs.cc + dcmrt/libsrc/drtpdeds.cc + dcmrt/libsrc/drtpfms.cc + dcmrt/libsrc/drtpics.cc + dcmrt/libsrc/drtplan.cc + dcmrt/libsrc/drtporcs.cc + dcmrt/libsrc/drtporis.cc + dcmrt/libsrc/drtppcs.cc + dcmrt/libsrc/drtprsis.cc + dcmrt/libsrc/drtpscs.cc + dcmrt/libsrc/drtpsics.cc + dcmrt/libsrc/drtpss.cc + dcmrt/libsrc/drtpsss.cc + dcmrt/libsrc/drtpvis.cc + dcmrt/libsrc/drtqds.cc + dcmrt/libsrc/drtras.cc + dcmrt/libsrc/drtrbas2.cc + dcmrt/libsrc/drtrbas8.cc + dcmrt/libsrc/drtrbls.cc + dcmrt/libsrc/drtrbos1.cc + dcmrt/libsrc/drtrbos6.cc + dcmrt/libsrc/drtrbos7.cc + dcmrt/libsrc/drtrbs2.cc + dcmrt/libsrc/drtrbs4.cc + dcmrt/libsrc/drtrbs8.cc + dcmrt/libsrc/drtrcdrs.cc + dcmrt/libsrc/drtrcos.cc + dcmrt/libsrc/drtrcps.cc + dcmrt/libsrc/drtrcs.cc + dcmrt/libsrc/drtrdros.cc + dcmrt/libsrc/drtrdrs1.cc + dcmrt/libsrc/drtrdrs6.cc + dcmrt/libsrc/drtrdrs8.cc + dcmrt/libsrc/drtrds.cc + dcmrt/libsrc/drtrecs.cc + dcmrt/libsrc/drtrfgs.cc + dcmrt/libsrc/drtrfors.cc + dcmrt/libsrc/drtrics.cc + dcmrt/libsrc/drtrims.cc + dcmrt/libsrc/drtris.cc + dcmrt/libsrc/drtrlsds.cc + dcmrt/libsrc/drtrmdrs.cc + dcmrt/libsrc/drtrms.cc + dcmrt/libsrc/drtrmss6.cc + dcmrt/libsrc/drtrmss7.cc + dcmrt/libsrc/drtrpcs.cc + dcmrt/libsrc/drtrpis.cc + dcmrt/libsrc/drtrppcs.cc + dcmrt/libsrc/drtrpphs.cc + dcmrt/libsrc/drtrpps.cc + dcmrt/libsrc/drtrppss.cc + dcmrt/libsrc/drtrps.cc + dcmrt/libsrc/drtrris1.cc + dcmrt/libsrc/drtrris6.cc + dcmrt/libsrc/drtrris9.cc + dcmrt/libsrc/drtrrms.cc + dcmrt/libsrc/drtrros.cc + dcmrt/libsrc/drtrrpcs.cc + dcmrt/libsrc/drtrrros.cc + dcmrt/libsrc/drtrrs.cc + dcmrt/libsrc/drtrrshs.cc + dcmrt/libsrc/drtrrtps.cc + dcmrt/libsrc/drtrrtps3.cc + dcmrt/libsrc/drtrrtps4.cc + dcmrt/libsrc/drtrrtps5.cc + dcmrt/libsrc/drtrscs.cc + dcmrt/libsrc/drtrsers.cc + dcmrt/libsrc/drtrses.cc + dcmrt/libsrc/drtrshs.cc + dcmrt/libsrc/drtrshs6.cc + dcmrt/libsrc/drtrshs7.cc + dcmrt/libsrc/drtrsis.cc + dcmrt/libsrc/drtrsns.cc + dcmrt/libsrc/drtrsos.cc + dcmrt/libsrc/drtrsrs.cc + dcmrt/libsrc/drtrss.cc + dcmrt/libsrc/drtrsss.cc + dcmrt/libsrc/drtrsts.cc + dcmrt/libsrc/drtrtrs2.cc + dcmrt/libsrc/drtrtrs4.cc + dcmrt/libsrc/drtrvis.cc + dcmrt/libsrc/drtrws.cc + dcmrt/libsrc/drtrwvms.cc + dcmrt/libsrc/drtscris.cc + dcmrt/libsrc/drtscs.cc + dcmrt/libsrc/drtsdcs.cc + dcmrt/libsrc/drtsds.cc + dcmrt/libsrc/drtshds.cc + dcmrt/libsrc/drtsins.cc + dcmrt/libsrc/drtsis.cc + dcmrt/libsrc/drtsns.cc + dcmrt/libsrc/drtspccs.cc + dcmrt/libsrc/drtspcs.cc + dcmrt/libsrc/drtspgis.cc + dcmrt/libsrc/drtsptcs.cc + dcmrt/libsrc/drtss.cc + dcmrt/libsrc/drtssrcs.cc + dcmrt/libsrc/drtssrs.cc + dcmrt/libsrc/drtsss.cc + dcmrt/libsrc/drtstrct.cc + dcmrt/libsrc/drttms0.cc + dcmrt/libsrc/drttms9.cc + dcmrt/libsrc/drttreat.cc + dcmrt/libsrc/drttscds.cc + dcmrt/libsrc/drttsibs.cc + dcmrt/libsrc/drttsmds.cc + dcmrt/libsrc/drttts.cc + dcmrt/libsrc/drtudis.cc + dcmrt/libsrc/drtvls.cc + dcmrt/libsrc/drtwps.cc + dcmrt/libsrc/drtwrs.cc + dcmrt/libsrc/drtwrsrs.cc + dcmrt/libsrc/drtws.cc + dcmrt/libsrc/drtxrs.cc + +- Updated Context Group classes for DICOM 2016e: + Updated automatically generated Context Group classes for the 2016e + edition of the DICOM standard. There were only changes to CID 7181 + and 7469. + Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid100.h + dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h + dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h + dcmsr/include/dcmtk/dcmsr/cmr/cid11.h + dcmsr/include/dcmtk/dcmsr/cmr/cid244.h + dcmsr/include/dcmtk/dcmsr/cmr/cid29.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h + dcmsr/include/dcmtk/dcmsr/cmr/cid42.h + dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h + dcmsr/libcmr/cid100.cc + dcmsr/libcmr/cid10013.cc + dcmsr/libcmr/cid10033.cc + dcmsr/libcmr/cid11.cc + dcmsr/libcmr/cid244.cc + dcmsr/libcmr/cid29.cc + dcmsr/libcmr/cid4020.cc + dcmsr/libcmr/cid4021.cc + dcmsr/libcmr/cid4031.cc + dcmsr/libcmr/cid42.cc + dcmsr/libcmr/cid6147.cc + dcmsr/libcmr/cid7021.cc + dcmsr/libcmr/cid7181.cc + dcmsr/libcmr/cid7445.cc + dcmsr/libcmr/cid7452.cc + dcmsr/libcmr/cid7453.cc + dcmsr/libcmr/cid7464.cc + dcmsr/libcmr/cid7469.cc + +- Added comments on transfer syntax name changes: + With DICOM 2016e, the official names of the MPEG2 transfer syntaxes changed. + Added a comment to both the corresponding UID and "Xfer names" definitions. + However, the constants and defines have not been changed because of backward + compatibility. + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcxfer.cc + +- Now use code constant CODE_DCM_PulseSequenceName. + Affects: dcmsr/libcmr/tid1600.cc + +- Updated code definitions for DICOM 2016e: + Updated automatically generated code definitions for coding scheme "DCM", + "NCIt" and "UMLS" for the 2016e edition of the DICOM standard. For the + two latter ones, there were no changes. + Affects: dcmsr/include/dcmtk/dcmsr/codes/dcm.h + dcmsr/include/dcmtk/dcmsr/codes/ncit.h + dcmsr/include/dcmtk/dcmsr/codes/umls.h + +- Updated data dictionary for DICOM 2016e: + Updated data dictionary for the latest edition of the DICOM standard, which + has been released on 2016-11-21. Since DCMTK's data dictionary was already + up-to-date regarding the recently approved Supplements and CPs, there are no + changes apart from the "Version" column. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +- Removed additional library dependencies: + Removed additional library dependencies from "libsrc/CMakeLists.txt" files + that are not needed since these dependencies are already specified by other + linked libraries (using the CMake macro "DCMTK_TARGET_LINK_LIBRARIES"). + Affects: dcmiod/libsrc/CMakeLists.txt + dcmpmap/libsrc/CMakeLists.txt + dcmseg/libsrc/CMakeLists.txt + dcmtract/libsrc/CMakeLists.txt + oflog/libsrc/CMakeLists.txt + +**** Changes from 2016.11.23 (eichelberg) + +- Added legal remark concerning HP's JPEG-LS patents: + Added legal remark to dcmjpls documentation concerning HP's JPEG-LS + patents and the possibility to receive a free license from HP. + This closes #377. + Affects: dcmjpls/docs/License.txt + dcmjpls/docs/dcmjpls.dox + +- Improved 8/12/16 bit JPEG code consistency: + Minor edits to keep data structures and variable names in the 8, 12 + and 16 bit versions of the JPEG codec more consistent. + This closes bug #654. + Affects: dcmjpeg/libijg12/jdmarker.c + dcmjpeg/libijg12/jpeglib12.h + dcmjpeg/libijg16/jpeglib16.h + dcmjpeg/libijg8/jpeglib8.h + +- JPEG decoder now decompresses incomplete bitstreams: + Added codec flag and command line option in dcmdjpeg to permit + decompression of faulty images with incomplete JPEG bitstreams. + Instead of trying to read more JPEG data from the next fragment, + the decoder simply skips to the next frame when activated. + This closes bug #571. + Affects: dcmjpeg/apps/dcmdjpeg.cc + dcmjpeg/docs/dcmdjpeg.man + dcmjpeg/include/dcmtk/dcmjpeg/djcparam.h + dcmjpeg/include/dcmtk/dcmjpeg/djdecode.h + dcmjpeg/libsrc/djcodecd.cc + dcmjpeg/libsrc/djcparam.cc + dcmjpeg/libsrc/djdecode.cc + dcmjpeg/libsrc/djencode.cc + +**** Changes from 2016.11.22 (riesmeier) + +- Fixed issue with option "--display-overlay 0": + Using option "--display-overlay 0" (or "+O 0") did not work because of a + too strict range check. This issue was apparently not found in the past + since this option is actually the default (i.e. show all overlay planes). + Affects: dcmimage/apps/dcm2pnm.cc + +- Rebuilt Makefile dependencies. + Affects: ofstd/libsrc/Makefile.dep + ofstd/tests/Makefile.dep + +- Re-added tab characters removed by last commit. + Affects: ofstd/libsrc/Makefile.in + +**** Changes from 2016.11.21 (hasenpusch) + +- Fixed OFSemaphore for macOS: + The OFSemaphore class on macOS now uses Apple's dispatch framework as it + contains the only functional unnamed semaphore implementation. + The OFThread tests now all succeed. + This fixes DCMTK bug #382. + Affects: ofstd/include/dcmtk/ofstd/ofthread.h + ofstd/libsrc/ofthread.cc + ofstd/tests/tthread.cc + +**** Changes from 2016.11.21 (schlamelcher) + +- Suppressed warnings in OFThread's unit test: + Suppressed inappropriate warnings about parameter name shadowing, see docu- + mentation of the employed macro. + Affects: ofstd/tests/tthread.cc + +- Suppressed silly Visual Studio warnings in OFvariant. + Affects: ofstd/include/dcmtk/ofstd/variadic/variant.h + +- Several fixes for OFnumeric_limits: + Fixed building with GCC using '-pedantic' by moving some definitions from the + header to the new source file oflimits.cc. + Suppressed type conversion warnings in the unit test that are also unneces- + sary, since they are about what is being tested there. + Added: ofstd/libsrc/oflimits.cc + Affects: ofstd/include/dcmtk/ofstd/oflimits.h + ofstd/libsrc/CMakeLists.txt + ofstd/libsrc/Makefile.in + ofstd/tests/tlimits.cc + +- Added support for additional compiler diagnostics: + Introduced three new macros to ofdiag.h and added related definition files. + Enhanced documentation of ofdiag.h regarding supported compilers. + Added: ofstd/include/dcmtk/ofstd/diag/cnvrsn.def + ofstd/include/dcmtk/ofstd/diag/shadow.def + ofstd/include/dcmtk/ofstd/diag/vsprfw.def + Affects: ofstd/include/dcmtk/ofstd/ofdiag.h + +**** Changes from 2016.11.18 (eichelberg) + +- Fixed empty pixel data bug in DcmPixelData::write(): + Fixed bug in DcmPixelData::write() that caused an empty Pixel Data + element to be written when the caller tried to write a compressed + image in uncompressed transfer syntax without a prior call to + chooseRepresentation() or canWriteXfer(). Now an error is returned. + This closes bug #701. + Affects: dcmdata/libsrc/dcpixel.cc + +**** Changes from 2016.11.18 (schlamelcher) + +- Suppressed an inappropriate Visual Studio warning: + Suppressed an inappropriate Visual Studio warning about template specializa- + tion in dcmsr. The affected code is not about template specialization but in- + stead about static member initialization, the warning can therefore safely + be ignored. + Added: ofstd/include/dcmtk/ofstd/diag/nsdfti.def + Affects: dcmsr/libsrc/dsrimgfr.cc + dcmsr/libsrc/dsrimgse.cc + dcmsr/libsrc/dsrsc3gr.cc + dcmsr/libsrc/dsrscogr.cc + dcmsr/libsrc/dsrtcodt.cc + dcmsr/libsrc/dsrtcosp.cc + dcmsr/libsrc/dsrtcoto.cc + dcmsr/libsrc/dsrwavch.cc + ofstd/include/dcmtk/ofstd/ofdiag.h + +**** Changes from 2016.11.18 (eichelberg) + +- JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS: + The JPEG encoder now always writes a SOF1 marker when encoding pixel data + in the extended sequential transfer syntax with 8 bit/sample. + This implements support for DICOM CP 1447 and closes bug #620 and #663. + Affects: dcmjpeg/libijg8/jcapimin.c + dcmjpeg/libijg8/jcmarker.c + dcmjpeg/libijg8/jpeglib8.h + dcmjpeg/libsrc/djeijg8.cc + +**** Changes from 2016.11.18 (schlamelcher) + +- Added compiler version checks to ofdiag.h etc: + The compiler diagnostic macros now also check the compiler version and not + only the compiler itself to ensure the respective features are really avail- + able. This fixes problems regarding older versions of GCC. + Affects: ofstd/include/dcmtk/ofstd/diag/mmtag.def + ofstd/include/dcmtk/ofstd/diag/overflow.def + ofstd/include/dcmtk/ofstd/diag/piof.def + ofstd/include/dcmtk/ofstd/diag/pop.def + ofstd/include/dcmtk/ofstd/diag/push.def + ofstd/include/dcmtk/ofstd/diag/signcmp.def + ofstd/include/dcmtk/ofstd/ofdiag.h + +**** Changes from 2016.11.17 (riesmeier) + +- Fixed warning re. overloaded virtual function: + Fixed a compiler warning regarding an overloaded virtual function hiding the + print() method from the base class. Could be reproduced using gcc with option + -Woverloaded-virtual. + Affects: dcmsr/include/dcmtk/dcmsr/dsrdoctr.h + dcmsr/libsrc/dsrdoctr.cc + +**** Changes from 2016.11.17 (onken) + +- Avoid warning regarding hidden virtual method. + Affects: dcmiod/include/dcmtk/dcmiod/iodreferences.h + +**** Changes from 2016.11.17 (eichelberg) + +- Removed unnecessary call to getBaseTag(). + Affects: dcmdata/libsrc/dcitem.cc + +**** Changes from 2016.11.16 (schlamelcher) + +- Added some missing files to the install steps: + Added the new files under dcmtk/ofstd/diag to the install steps for both + CMake and Autoconf. + Added docs/CHANGES.XXX to the install steps for both CMake and Autoconf. + Affects: CMakeLists.txt + Makefile + config/rootconf + ofstd/include/CMakeLists.txt + ofstd/include/Makefile.in + +**** Changes from 2016.11.16 (eichelberg) + +- Fixed minor formatting issues. + Affects: dcmdata/apps/dcmconv.cc + dcmdata/apps/dcmdump.cc + dcmdata/docs/dcmconv.man + dcmdata/docs/dcmdump.man + dcmdata/include/dcmtk/dcmdata/dcobject.h + dcmdata/libsrc/dcitem.cc + +- Added code for handling VOI LUT Sequences with OB/OW VR: + Added command line options for handling VOI LUT Sequence elements with + illegal OB/OW value representation (undefined and explicit length). + Affects: dcmdata/apps/dcmconv.cc + dcmdata/apps/dcmdump.cc + dcmdata/docs/dcmconv.man + dcmdata/docs/dcmdump.man + +- Added code for handling VOI LUT Sequences with OB/OW VR: + Added code for handling VOI LUT Sequence elements with illegal OB/OW + value representation. The occurance of such DICOM datasets in the + field, using OW and undefined length, was reported by Jörg Weinert in + October 2016. + Affects: dcmdata/include/dcmtk/dcmdata/dcerror.h + dcmdata/include/dcmtk/dcmdata/dcobject.h + dcmdata/libsrc/dcerror.cc + dcmdata/libsrc/dcitem.cc + dcmdata/libsrc/dcobject.cc + +**** Changes from 2016.11.16 (riesmeier) + +- Fixed wrong reference to conventonal JPEG format. + Affects: dcmjpls/docs/dcmjpls.dox + +- Added note/warning on size of class instance: + Added a note (warning) that an instance of this class requires quite some + memory. So it is probably better to use the heap space (and not the stack). + Affects: dcmrt/include/dcmtk/dcmrt/drtdose.h + dcmrt/include/dcmtk/dcmrt/drtimage.h + dcmrt/include/dcmtk/dcmrt/drtionpl.h + dcmrt/include/dcmtk/dcmrt/drtiontr.h + dcmrt/include/dcmtk/dcmrt/drtplan.h + dcmrt/include/dcmtk/dcmrt/drtstrct.h + dcmrt/include/dcmtk/dcmrt/drttreat.h + +- Replaced non-ASCII character in comment header. + Affects: dcmiod/libsrc/cielabutil.cc + +- Fixed wrong identation with tab characters: + Fixed wrong identation with tab characters (mainly introduced with last + commit). Also changed outdated name of DCMTK module in the comment header + (was "dcmpstat", actually is "dcmtls"). + Affects: dcmtls/tests/dcmtk_ca.pl + +- Replaced tab characters by spaces: + Replaced tab characters by spaces and removed trailing spaces (introduced + with the last commit). + Affects: dcmtls/libsrc/tlslayer.cc + +- Replaced non-ASCII characters: + Replaced Unicode characters by their corresponding ASCII representation + since the previous encoding resulted in a strange display of the HTML + Doxgen documentation (in a web browser). Also replaced "(c)" by "(C)" + where appropriate. + Affects: COPYRIGHT + +**** Changes from 2016.11.16 (onken) + +- Renamed min() to min2() (macro name clash): + Renamed the method min() to min2() since min() is also a macro on Windows + systems which can lead to a name clash in user code. + Affects: dcmiod/include/dcmtk/dcmiod/cielabutil.h + dcmiod/libsrc/cielabutil.cc + +**** Changes from 2016.11.16 (schlamelcher) + +- Adjusted a previous commit for older GCC versions. + Affects: ofstd/tests/tlimits.cc + +**** Changes from 2016.11.15 (schlamelcher) + +- Suppressed some unnecessary warnings: + Suppressed overflow warnings in OFnumeric_limits' unit test, since it is the + overflow behavior that is being tested there. + Suppressed Clang warnings about mixing struct/class keywords in the pre C++11 + implementation of OFtuple since mixing those keywords has no drawbacks and + allows writing more compact code. + Affects: ofstd/include/dcmtk/ofstd/oftuple.h + ofstd/tests/tlimits.cc + +- Added macros for controlling compiler diagnostics: + Introduced platform independent macros for controlling compiler diagnostic + output i.e. warning messages. + Added: ofstd/include/dcmtk/ofstd/diag/mmtag.def + ofstd/include/dcmtk/ofstd/diag/overflow.def + ofstd/include/dcmtk/ofstd/diag/piof.def + ofstd/include/dcmtk/ofstd/diag/pop.def + ofstd/include/dcmtk/ofstd/diag/push.def + ofstd/include/dcmtk/ofstd/diag/signcmp.def + ofstd/include/dcmtk/ofstd/ofdiag.h + +**** Changes from 2016.11.14 (riesmeier) + +- Added support for new SR IOD from Supplement 169: + Added full support for the new Simplified Adult Echo SR IOD introduced + with Supplement 169. This also adds optional support for the "Timezone + Offset From UTC" attribute to all other Structured Reporting IODs. + Closes DCMTK Conformance issue #703. + Added: dcmsr/include/dcmtk/dcmsr/dsrsaecc.h + dcmsr/libsrc/dsrsaecc.cc + Affects: dcmsr/data/dsr2xml.xsd + dcmsr/docs/dsr2html.man + dcmsr/docs/dsr2xml.man + dcmsr/docs/dsrdump.man + dcmsr/docs/xml2dsr.man + dcmsr/include/dcmtk/dcmsr/dsrdoc.h + dcmsr/include/dcmtk/dcmsr/dsrtypes.h + dcmsr/libsrc/CMakeLists.txt + dcmsr/libsrc/Makefile.dep + dcmsr/libsrc/Makefile.in + dcmsr/libsrc/dsrdoc.cc + dcmsr/libsrc/dsrtypes.cc + +- Use macro _LIBICONV_VERSION instead of variable: + Use macro _LIBICONV_VERSION instead of global variable _libiconv_version + in OFCharacterEncoding::getLibraryVersionString(). Both should be defined + in the main header file "iconv.h"... but apparently are not (always). + Affects: ofstd/libsrc/ofchrenc.cc + +**** Changes from 2016.11.11 (riesmeier) + +- Added "Simplified Adult Echo SR" to known types: + Added the Simplified Adult Echo SR IOD / SOP Class, which was introduced + only recently with Supplement 169, to the list of known (but not yet + supported) SR document types. + Full support for this IOD / SOP Class will follow in a future commit. + Affects: dcmsr/include/dcmtk/dcmsr/dsrtypes.h + dcmsr/libsrc/dsrtypes.cc + +- Added support for new UID from Supplement 169: + Added support for new Storage SOP Class UID from Supplement 169 (Simplified + Adult Echocardiography Report). + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcddirif.cc + dcmdata/libsrc/dcuid.cc + dcmnet/docs/storescp.man + dcmnet/etc/storescp.cfg + dcmnet/etc/storescu.cfg + dcmqrdb/docs/dcmqrscp.man + dcmqrdb/libsrc/dcmqrdbi.cc + +**** Changes from 2016.11.11 (eichelberg) + +- Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0: + Updated the dcmtls and dcmpstat modules, which now compile + and work with OpenSSL 1.0.0, 1.0.1 and 1.1.0. Removed support + for some historical, insecure export ciphersuites in TLS. + NOTE: OpenSSL 1.1.0 does not anymore accept certificates + with MD5 message digest in TLS connections. + This means that certificates generated with previous versions + of the dcmtk_ca.pl script will no longer work for TLS. + The script has been updated accordingly. + Affects: dcmpstat/libsrc/dviface.cc + dcmtls/docs/ciphers.txt + dcmtls/libsrc/tlslayer.cc + dcmtls/tests/dcmtk_ca.pl + +- Updated dcmsign to correctly compile with OpenSSL 1.1.0: + Updated the dcmsign module so that it compiles and works with + OpenSSL 1.0.0, 1.0.1 and 1.1.0. Implemented support for + SHA256, SHA384 and SHA512 as additional message digest + algorithms for DICOM signatures. + Added: dcmsign/include/dcmtk/dcmsign/sisha256.h + dcmsign/include/dcmtk/dcmsign/sisha384.h + dcmsign/include/dcmtk/dcmsign/sisha512.h + dcmsign/libsrc/sisha256.cc + dcmsign/libsrc/sisha384.cc + dcmsign/libsrc/sisha512.cc + Affects: dcmsign/apps/Makefile.dep + dcmsign/apps/dcmsign.cc + dcmsign/include/dcmtk/dcmsign/sitypes.h + dcmsign/libsrc/CMakeLists.txt + dcmsign/libsrc/Makefile.dep + dcmsign/libsrc/Makefile.in + dcmsign/libsrc/dcsignat.cc + dcmsign/libsrc/sicert.cc + dcmsign/libsrc/sicertvf.cc + dcmsign/libsrc/sidsa.cc + dcmsign/libsrc/siprivat.cc + dcmsign/libsrc/sirsa.cc + dcmsign/libsrc/sitypes.cc + +**** Changes from 2016.11.10 (riesmeier) + +- Added support for CP-1584 to data dictionary. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +- Added initial support for Supplement 195: + Added initial support for Supplement 195 (HEVC/H.265 Transfer Syntax), + i.e. added definition of two new transfer syntaxes. Support in the various + networking tools is not yet complete (e.g. missing prefer/propose options). + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/include/dcmtk/dcmdata/dcxfer.h + dcmdata/libsrc/dcuid.cc + dcmdata/libsrc/dcxfer.cc + dcmnet/apps/echoscu.cc + dcmnet/apps/storescp.cc + dcmnet/docs/echoscu.man + dcmnet/docs/storescp.man + dcmnet/etc/storescp.cfg + dcmnet/libsrc/dimse.cc + +- Added support for recently approved CPs: + Added support for CP-1597, CP-1609 and CP-1611 to the data dictionary. + These CPs were approved during this week's DICOM WG-06 meeting. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +- Added four Color Palette SOP Instances (CP-1584): + Added well-known SOP Instance UID values for four new Color Palettes + introduced with CP-1584 (Allow Palette Color in Parametric Map). + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcuid.cc + +- Fixed code value for "Pulse Sequence Name" (CP-1578): + Fixed wrong definition of code value for "Pulse Sequence Name" (see CP-1578). + Affects: dcmsr/libcmr/tid1600.cc + +**** Changes from 2016.11.10 (schlamelcher) + +- Enhanced C++11 compliance of OFvariant: + Moved a type definition from the inside of a constexpr function to the + enclosing class, since this is only allowed by C++14 and later but not C++11. + Fixed potentially too weak alignment specifier used while determining the + common alignment of all variant alternatives. + Affects: ofstd/include/dcmtk/ofstd/ofvriant.h + +**** Changes from 2016.11.09 (riesmeier) + +- Added missing documentation for return values. + Affects: dcmrt/include/dcmtk/dcmrt/drmimage.h + dcmrt/include/dcmtk/dcmrt/drtdose.h + dcmrt/include/dcmtk/dcmrt/drtimage.h + dcmrt/include/dcmtk/dcmrt/drtionpl.h + dcmrt/include/dcmtk/dcmrt/drtiontr.h + dcmrt/include/dcmtk/dcmrt/drtplan.h + dcmrt/include/dcmtk/dcmrt/drtstrct.h + dcmrt/include/dcmtk/dcmrt/drttreat.h + dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtads.h + dcmrt/include/dcmtk/dcmrt/seq/drtafs.h + dcmrt/include/dcmtk/dcmrt/seq/drtags.h + dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtas1.h + dcmrt/include/dcmtk/dcmrt/seq/drtas5.h + dcmrt/include/dcmtk/dcmrt/seq/drtas6.h + dcmrt/include/dcmtk/dcmrt/seq/drtas7.h + dcmrt/include/dcmtk/dcmrt/seq/drtass.h + dcmrt/include/dcmtk/dcmrt/seq/drtbads.h + dcmrt/include/dcmtk/dcmrt/seq/drtbas.h + dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h + dcmrt/include/dcmtk/dcmrt/seq/drtccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h + dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtces.h + dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtchs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcims.h + dcmrt/include/dcmtk/dcmrt/seq/drtcis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtdias.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtds.h + dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drteas.h + dcmrt/include/dcmtk/dcmrt/seq/drtecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfds.h + dcmrt/include/dcmtk/dcmrt/seq/drtfes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h + dcmrt/include/dcmtk/dcmrt/seq/drtfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtgas.h + dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h + dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiais.h + dcmrt/include/dcmtk/dcmrt/seq/drtians.h + dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h + dcmrt/include/dcmtk/dcmrt/seq/drtibls.h + dcmrt/include/dcmtk/dcmrt/seq/drtibs.h + dcmrt/include/dcmtk/dcmrt/seq/drticpds.h + dcmrt/include/dcmtk/dcmrt/seq/drticps.h + dcmrt/include/dcmtk/dcmrt/seq/drtics.h + dcmrt/include/dcmtk/dcmrt/seq/drtiis.h + dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h + dcmrt/include/dcmtk/dcmrt/seq/drtircs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h + dcmrt/include/dcmtk/dcmrt/seq/drtitts.h + dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtiws.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h + dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h + dcmrt/include/dcmtk/dcmrt/seq/drtmas.h + dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtmls.h + dcmrt/include/dcmtk/dcmrt/seq/drtmps.h + dcmrt/include/dcmtk/dcmrt/seq/drtmris.h + dcmrt/include/dcmtk/dcmrt/seq/drtmss.h + dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h + dcmrt/include/dcmtk/dcmrt/seq/drtoas.h + dcmrt/include/dcmtk/dcmrt/seq/drtois.h + dcmrt/include/dcmtk/dcmrt/seq/drtopis.h + dcmrt/include/dcmtk/dcmrt/seq/drtos.h + dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h + dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtpics.h + dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtporis.h + dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h + dcmrt/include/dcmtk/dcmrt/seq/drtpss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtqds.h + dcmrt/include/dcmtk/dcmrt/seq/drtras.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h + dcmrt/include/dcmtk/dcmrt/seq/drtrics.h + dcmrt/include/dcmtk/dcmrt/seq/drtrims.h + dcmrt/include/dcmtk/dcmrt/seq/drtris.h + dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h + dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h + dcmrt/include/dcmtk/dcmrt/seq/drtrses.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrws.h + dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h + dcmrt/include/dcmtk/dcmrt/seq/drtscris.h + dcmrt/include/dcmtk/dcmrt/seq/drtscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtshds.h + dcmrt/include/dcmtk/dcmrt/seq/drtsins.h + dcmrt/include/dcmtk/dcmrt/seq/drtsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtss.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsss.h + dcmrt/include/dcmtk/dcmrt/seq/drttms0.h + dcmrt/include/dcmtk/dcmrt/seq/drttms9.h + dcmrt/include/dcmtk/dcmrt/seq/drttscds.h + dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h + dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h + dcmrt/include/dcmtk/dcmrt/seq/drttts.h + dcmrt/include/dcmtk/dcmrt/seq/drtudis.h + dcmrt/include/dcmtk/dcmrt/seq/drtvls.h + dcmrt/include/dcmtk/dcmrt/seq/drtwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtws.h + dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h + +- Fixed Doxygen-related issues in the documentation: + Added missing documentation for parameters and return values. + Affects: dcmimage/include/dcmtk/dcmimage/dicoimg.h + dcmimgle/include/dcmtk/dcmimgle/dcmimage.h + dcmimgle/include/dcmtk/dcmimgle/diimage.h + dcmimgle/include/dcmtk/dcmimgle/dimoimg.h + dcmimgle/include/dcmtk/dcmimgle/dimomod.h + dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h + +- Enabled Doxygen's WARN_NO_PARAMDOC option: + Enabled Doxygen's WARN_NO_PARAMDOC option in order to get a warning to the + "doxygen/htmldocs.log" file on undocumented parameters and return values. + Affects: doxygen/htmldocs.cfg + +- Various Doxygen-related fixes to documentation: + Fixed various Doxygen-related issues in the documentation of the API, + e.g. unresolved references to members of a base class or undocumented + parameters and return values of methods. + Affects: dcmsr/include/dcmtk/dcmsr/dsrdoc.h + dcmsr/include/dcmtk/dcmsr/dsrposcn.h + dcmsr/include/dcmtk/dcmsr/dsrsc3vl.h + dcmsr/include/dcmtk/dcmsr/dsrscovl.h + dcmsr/include/dcmtk/dcmsr/dsrtcovl.h + dcmsr/include/dcmtk/dcmsr/dsrxmld.h + +- Renamed empty() methods to isEmpty(): + Renamed remaining empty() methods to isEmpty() for reasons of consistency. + Affects: dcmsr/include/dcmtk/dcmsr/dsrcsidl.h + dcmsr/include/dcmtk/dcmsr/dsrrefin.h + dcmsr/include/dcmtk/dcmsr/dsrsoprf.h + dcmsr/libsrc/dsrcsidl.cc + dcmsr/libsrc/dsrdoc.cc + dcmsr/libsrc/dsrrefin.cc + dcmsr/libsrc/dsrsoprf.cc + +- Added new method hasVerifyingObservers(): + Added new method DSRDocument::hasVerifyingObservers(). + Affects: dcmsr/include/dcmtk/dcmsr/dsrdoc.h + dcmsr/libsrc/dsrdoc.cc + +- Made getNumberOfVerifyingObservers() const: + Made method DSRDocument::getNumberOfVerifyingObservers() "constant". + Affects: dcmsr/include/dcmtk/dcmsr/dsrdoc.h + dcmsr/libsrc/dsrdoc.cc + +**** Changes from 2016.11.04 (riesmeier) + +- Made "ReportType" optional in XML Schema: + Made "type" attribute optional for "report" element in XML Schema. This + is because the readXML() of the DSRDocument class does not require it + (in fact, it does not even use it). + Also fixed a wrong name for one of the "ReportType" enumerations. + Affects: dcmsr/data/dsr2xml.xsd + +- Removed check on arrays being not a null pointer: + Removed comparison of char arrays being not equal to a null pointer since this + is always true. This fix should avoid warning messages reported by Clang 3.5. + Affects: dcmpstat/libsrc/dviface.cc + +**** Changes from 2016.11.03 (riesmeier) + +- Added support for missing "ReportType" values: + Over the years, support for various new DICOM SR IODs has been added to + the "dcmsr" module but the XML Schema was not updated in this regard. + Now, the list of "ReportType" enumerated values is again up-to-date. + Affects: dcmsr/data/dsr2xml.xsd + +- Added support for InstanceCreatorUID to readXML(): + Added missing support for the InstanceCreatorUID to readXML(). + The writeXML() already supported this optional XML attribute. + Affects: dcmsr/libsrc/dsrdoc.cc + +**** Changes from 2016.11.02 (schlamelcher) + +- Updated CHANGES.361 for new development snapshot. + Affects: docs/CHANGES.361 + +- Updated DCMTK_ABI_VERSION for new development snapshot. + Affects: CMake/dcmtkPrepare.cmake + +- Updated man pages for new development snapshot. + Affects: doxygen/manpages/man1/dcm2pdf.1 + doxygen/manpages/man1/dcm2pnm.1 + doxygen/manpages/man1/dcm2xml.1 + doxygen/manpages/man1/dcmcjpeg.1 + doxygen/manpages/man1/dcmcjpls.1 + doxygen/manpages/man1/dcmconv.1 + doxygen/manpages/man1/dcmcrle.1 + doxygen/manpages/man1/dcmdjpeg.1 + doxygen/manpages/man1/dcmdjpls.1 + doxygen/manpages/man1/dcmdrle.1 + doxygen/manpages/man1/dcmdspfn.1 + doxygen/manpages/man1/dcmdump.1 + doxygen/manpages/man1/dcmftest.1 + doxygen/manpages/man1/dcmgpdir.1 + doxygen/manpages/man1/dcmj2pnm.1 + doxygen/manpages/man1/dcml2pnm.1 + doxygen/manpages/man1/dcmmkcrv.1 + doxygen/manpages/man1/dcmmkdir.1 + doxygen/manpages/man1/dcmmklut.1 + doxygen/manpages/man1/dcmodify.1 + doxygen/manpages/man1/dcmp2pgm.1 + doxygen/manpages/man1/dcmprscp.1 + doxygen/manpages/man1/dcmprscu.1 + doxygen/manpages/man1/dcmpschk.1 + doxygen/manpages/man1/dcmpsmk.1 + doxygen/manpages/man1/dcmpsprt.1 + doxygen/manpages/man1/dcmpsrcv.1 + doxygen/manpages/man1/dcmpssnd.1 + doxygen/manpages/man1/dcmqridx.1 + doxygen/manpages/man1/dcmqrscp.1 + doxygen/manpages/man1/dcmqrti.1 + doxygen/manpages/man1/dcmquant.1 + doxygen/manpages/man1/dcmrecv.1 + doxygen/manpages/man1/dcmscale.1 + doxygen/manpages/man1/dcmsend.1 + doxygen/manpages/man1/dcmsign.1 + doxygen/manpages/man1/dcod2lum.1 + doxygen/manpages/man1/dconvlum.1 + doxygen/manpages/man1/drtdump.1 + doxygen/manpages/man1/dsr2html.1 + doxygen/manpages/man1/dsr2xml.1 + doxygen/manpages/man1/dsrdump.1 + doxygen/manpages/man1/dump2dcm.1 + doxygen/manpages/man1/echoscu.1 + doxygen/manpages/man1/findscu.1 + doxygen/manpages/man1/getscu.1 + doxygen/manpages/man1/img2dcm.1 + doxygen/manpages/man1/movescu.1 + doxygen/manpages/man1/pdf2dcm.1 + doxygen/manpages/man1/storescp.1 + doxygen/manpages/man1/storescu.1 + doxygen/manpages/man1/termscu.1 + doxygen/manpages/man1/wlmscpfs.1 + doxygen/manpages/man1/xml2dcm.1 + doxygen/manpages/man1/xml2dsr.1 + +- Updated Makefile dependencies. + Affects: ofstd/libsrc/Makefile.dep + +- Added API documentation for OFvariant etc. + Affects: ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/include/dcmtk/ofstd/ofvriant.h + +**** Changes from 2016.11.01 (riesmeier) + +- Added readXML mode that accepts empty/missing UID: + Added new mode to readXML() that accepts empty or missing Study/Series/ + SOP Instance UID values in the input document. This is required if only + some of these three UID values should be re-generated (replaced). Now, + option --generate-new-uids (with --dont-overwrite-uids) works as expected. + Thanks to Martin Wenger for the original + report that resulted in this improvement/fix. + Affects: dcmsr/apps/xml2dsr.cc + dcmsr/include/dcmtk/dcmsr/dsrtypes.h + dcmsr/include/dcmtk/dcmsr/dsrxmld.h + dcmsr/libsrc/dsrdoc.cc + dcmsr/libsrc/dsrtypes.cc + dcmsr/libsrc/dsrxmld.cc + +- Output debug messages when updating attributes: + Output messages to the debug logger when updating DICOM header attributes, + especially when generating new Study / Series / SOP Instance UIDs. + Affects: dcmsr/libsrc/dsrdoc.cc + +- Made clear that options +/-Uo require +Ug: + Now it is checked whether option --generate-new-uids (+Ug) is used when + --overwrite-uids (+Uo) or --dont-overwrite-uids (-Uo) is also specified + on the command line. This should avoid possible confusions. + Affects: dcmdata/apps/xml2dcm.cc + dcmsr/apps/xml2dsr.cc + +**** Changes from 2016.10.31 (schlamelcher) + +- Added OFvariant implementation for C++11: + Closes DCMTK bug #693. + Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h + dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h + ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/include/dcmtk/ofstd/ofvriant.h + +**** Changes from 2016.10.30 (schlamelcher) + +- Fixed a problem with a previous commit: + A line in a previous commit was truncated, leading to compiler errors. + Affects: dcmpstat/libsrc/dviface.cc + +**** Changes from 2016.10.28 (schlamelcher) + +- Fixed using third party libraries with MinGW: + Modified 3rdparty.cmake such that MinGW is handled the same as Unix like + systems regarding the integration of third party libraries. + Affects: CMake/3rdparty.cmake + +- Fixed 32 vs. 64 bit problem in dcmqrdb: + Fixed incompatibility of dcmqrdb databases between 32 bit and 64 bit code on + the same platform. Don't forget to re-create your databases using dcmqridx. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + +- Several fixes for dcmpstat: + Fixed detecting structured reporting objects based on the SOP class. + Fixed print job execution and cleanup. Print job executing was bugged when + the name of one print job was a prefix to the name of another print job. + Fixed deadlock in instanceReviewed() regarding database access. + Fixed opening files named using non ASCII characters (only relevant on + Windows). + Affects: dcmpstat/apps/dcmprscu.cc + dcmpstat/libsrc/dviface.cc + dcmpstat/libsrc/dvpshlp.cc + +- Fixed wrong usage of checkStringValue() in dcmpmap: + Fixed passing the attribute type to checkStringValue() where the value multi- + plicity is expected. + Affects: dcmpmap/libsrc/dpmmodparametricmapimage.cc + +**** Changes from 2016.10.12 (riesmeier) + +- Added comment on recently added DICOM attributes: + Added comment on DICOM attributes that were recently added to the DICOM + standard but which are not (yet) supported by the "dcmsr" module. + As usual, these "things to be done" can be found by searching for "tbd:" + in the source code of this module. + Affects: dcmsr/include/dcmtk/dcmsr/dsrcodvl.h + dcmsr/include/dcmtk/dcmsr/dsrdoc.h + +- Updated "dcmrt" classes based on DICOM 2016d: + Updated automatically generated IOD and sequence C++ classes for the various + RT objects based on the current edition of the DICOM standard (2016d). + Added: dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtmris.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h + dcmrt/include/dcmtk/dcmrt/seq/drtscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsins.h + dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtudis.h + dcmrt/libsrc/drtcgis.cc + dcmrt/libsrc/drtdddps.cc + dcmrt/libsrc/drtddps.cc + dcmrt/libsrc/drtgpis.cc + dcmrt/libsrc/drtmris.cc + dcmrt/libsrc/drtpdeds.cc + dcmrt/libsrc/drtscs.cc + dcmrt/libsrc/drtsins.cc + dcmrt/libsrc/drtspgis.cc + dcmrt/libsrc/drtsptcs.cc + dcmrt/libsrc/drtssrcs.cc + dcmrt/libsrc/drtsss.cc + dcmrt/libsrc/drtudis.cc + Removed: dcmrt/include/dcmtk/dcmrt/seq/drtarics.h + dcmrt/libsrc/drtarics.cc + Affects: dcmrt/apps/Makefile.dep + dcmrt/include/dcmtk/dcmrt/drtdose.h + dcmrt/include/dcmtk/dcmrt/drtimage.h + dcmrt/include/dcmtk/dcmrt/drtionpl.h + dcmrt/include/dcmtk/dcmrt/drtiontr.h + dcmrt/include/dcmtk/dcmrt/drtplan.h + dcmrt/include/dcmtk/dcmrt/drtstrct.h + dcmrt/include/dcmtk/dcmrt/drttreat.h + dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtads.h + dcmrt/include/dcmtk/dcmrt/seq/drtafs.h + dcmrt/include/dcmtk/dcmrt/seq/drtags.h + dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtas1.h + dcmrt/include/dcmtk/dcmrt/seq/drtas5.h + dcmrt/include/dcmtk/dcmrt/seq/drtas6.h + dcmrt/include/dcmtk/dcmrt/seq/drtas7.h + dcmrt/include/dcmtk/dcmrt/seq/drtass.h + dcmrt/include/dcmtk/dcmrt/seq/drtbads.h + dcmrt/include/dcmtk/dcmrt/seq/drtbas.h + dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h + dcmrt/include/dcmtk/dcmrt/seq/drtccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h + dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtces.h + dcmrt/include/dcmtk/dcmrt/seq/drtchs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcims.h + dcmrt/include/dcmtk/dcmrt/seq/drtcis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdias.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtds.h + dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drteas.h + dcmrt/include/dcmtk/dcmrt/seq/drtecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfds.h + dcmrt/include/dcmtk/dcmrt/seq/drtfes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h + dcmrt/include/dcmtk/dcmrt/seq/drtfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtgas.h + dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiais.h + dcmrt/include/dcmtk/dcmrt/seq/drtians.h + dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h + dcmrt/include/dcmtk/dcmrt/seq/drtibls.h + dcmrt/include/dcmtk/dcmrt/seq/drtibs.h + dcmrt/include/dcmtk/dcmrt/seq/drticpds.h + dcmrt/include/dcmtk/dcmrt/seq/drticps.h + dcmrt/include/dcmtk/dcmrt/seq/drtics.h + dcmrt/include/dcmtk/dcmrt/seq/drtiis.h + dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h + dcmrt/include/dcmtk/dcmrt/seq/drtircs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h + dcmrt/include/dcmtk/dcmrt/seq/drtitts.h + dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtiws.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h + dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h + dcmrt/include/dcmtk/dcmrt/seq/drtmas.h + dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtmls.h + dcmrt/include/dcmtk/dcmrt/seq/drtmps.h + dcmrt/include/dcmtk/dcmrt/seq/drtmss.h + dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h + dcmrt/include/dcmtk/dcmrt/seq/drtoas.h + dcmrt/include/dcmtk/dcmrt/seq/drtois.h + dcmrt/include/dcmtk/dcmrt/seq/drtopis.h + dcmrt/include/dcmtk/dcmrt/seq/drtos.h + dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtpics.h + dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtporis.h + dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h + dcmrt/include/dcmtk/dcmrt/seq/drtpss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtqds.h + dcmrt/include/dcmtk/dcmrt/seq/drtras.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h + dcmrt/include/dcmtk/dcmrt/seq/drtrics.h + dcmrt/include/dcmtk/dcmrt/seq/drtrims.h + dcmrt/include/dcmtk/dcmrt/seq/drtris.h + dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h + dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h + dcmrt/include/dcmtk/dcmrt/seq/drtrses.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrws.h + dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h + dcmrt/include/dcmtk/dcmrt/seq/drtscris.h + dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtshds.h + dcmrt/include/dcmtk/dcmrt/seq/drtsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtss.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h + dcmrt/include/dcmtk/dcmrt/seq/drttms0.h + dcmrt/include/dcmtk/dcmrt/seq/drttms9.h + dcmrt/include/dcmtk/dcmrt/seq/drttscds.h + dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h + dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h + dcmrt/include/dcmtk/dcmrt/seq/drttts.h + dcmrt/include/dcmtk/dcmrt/seq/drtvls.h + dcmrt/include/dcmtk/dcmrt/seq/drtwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtws.h + dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h + dcmrt/libsrc/CMakeLists.txt + dcmrt/libsrc/Makefile.dep + dcmrt/libsrc/Makefile.in + dcmrt/libsrc/drtaadcs.cc + dcmrt/libsrc/drtadcs.cc + dcmrt/libsrc/drtads.cc + dcmrt/libsrc/drtafs.cc + dcmrt/libsrc/drtags.cc + dcmrt/libsrc/drtajcs.cc + dcmrt/libsrc/drtas1.cc + dcmrt/libsrc/drtas5.cc + dcmrt/libsrc/drtas6.cc + dcmrt/libsrc/drtas7.cc + dcmrt/libsrc/drtass.cc + dcmrt/libsrc/drtbads.cc + dcmrt/libsrc/drtbas.cc + dcmrt/libsrc/drtbcps.cc + dcmrt/libsrc/drtbl2.cc + dcmrt/libsrc/drtbl5.cc + dcmrt/libsrc/drtbldls.cc + dcmrt/libsrc/drtbldps.cc + dcmrt/libsrc/drtblds1.cc + dcmrt/libsrc/drtblds5.cc + dcmrt/libsrc/drtblds6.cc + dcmrt/libsrc/drtbldts.cc + dcmrt/libsrc/drtbrcss.cc + dcmrt/libsrc/drtbrdrs.cc + dcmrt/libsrc/drtbrs.cc + dcmrt/libsrc/drtbs.cc + dcmrt/libsrc/drtbss.cc + dcmrt/libsrc/drtbvcps.cc + dcmrt/libsrc/drtcbars.cc + dcmrt/libsrc/drtccs.cc + dcmrt/libsrc/drtcctus.cc + dcmrt/libsrc/drtcdrs.cc + dcmrt/libsrc/drtces.cc + dcmrt/libsrc/drtchs.cc + dcmrt/libsrc/drtcims.cc + dcmrt/libsrc/drtcis.cc + dcmrt/libsrc/drtcncs.cc + dcmrt/libsrc/drtcos.cc + dcmrt/libsrc/drtcpas.cc + dcmrt/libsrc/drtcpis.cc + dcmrt/libsrc/drtcps.cc + dcmrt/libsrc/drtcs.cc + dcmrt/libsrc/drtcsas.cc + dcmrt/libsrc/drtcshs.cc + dcmrt/libsrc/drtcsis.cc + dcmrt/libsrc/drtcss.cc + dcmrt/libsrc/drtdcs.cc + dcmrt/libsrc/drtdias.cc + dcmrt/libsrc/drtdimcs.cc + dcmrt/libsrc/drtdimrs.cc + dcmrt/libsrc/drtdirs.cc + dcmrt/libsrc/drtdose.cc + dcmrt/libsrc/drtdrs.cc + dcmrt/libsrc/drtds.cc + dcmrt/libsrc/drtdspcs.cc + dcmrt/libsrc/drtdss.cc + dcmrt/libsrc/drtdvhs.cc + dcmrt/libsrc/drtdvrrs.cc + dcmrt/libsrc/drteas.cc + dcmrt/libsrc/drtecs.cc + dcmrt/libsrc/drtes.cc + dcmrt/libsrc/drtfds.cc + dcmrt/libsrc/drtfes.cc + dcmrt/libsrc/drtfgs.cc + dcmrt/libsrc/drtfgss.cc + dcmrt/libsrc/drtfms.cc + dcmrt/libsrc/drtfsss.cc + dcmrt/libsrc/drtgas.cc + dcmrt/libsrc/drthsdrs.cc + dcmrt/libsrc/drtiais.cc + dcmrt/libsrc/drtians.cc + dcmrt/libsrc/drtiblds.cc + dcmrt/libsrc/drtibls.cc + dcmrt/libsrc/drtibs.cc + dcmrt/libsrc/drticpds.cc + dcmrt/libsrc/drticps.cc + dcmrt/libsrc/drtics.cc + dcmrt/libsrc/drtiis.cc + dcmrt/libsrc/drtimage.cc + dcmrt/libsrc/drtionpl.cc + dcmrt/libsrc/drtiontr.cc + dcmrt/libsrc/drtipiqs.cc + dcmrt/libsrc/drtircs.cc + dcmrt/libsrc/drtiseis.cc + dcmrt/libsrc/drtitts.cc + dcmrt/libsrc/drtiwps.cc + dcmrt/libsrc/drtiws.cc + dcmrt/libsrc/drtlsds.cc + dcmrt/libsrc/drtlsds6.cc + dcmrt/libsrc/drtlsds7.cc + dcmrt/libsrc/drtmacds.cc + dcmrt/libsrc/drtmas.cc + dcmrt/libsrc/drtmdrs.cc + dcmrt/libsrc/drtmls.cc + dcmrt/libsrc/drtmps.cc + dcmrt/libsrc/drtmss.cc + dcmrt/libsrc/drtmucs.cc + dcmrt/libsrc/drtoas.cc + dcmrt/libsrc/drtois.cc + dcmrt/libsrc/drtopis.cc + dcmrt/libsrc/drtos.cc + dcmrt/libsrc/drtpbcs.cc + dcmrt/libsrc/drtpcs.cc + dcmrt/libsrc/drtpcxs.cc + dcmrt/libsrc/drtpdecs.cc + dcmrt/libsrc/drtpfms.cc + dcmrt/libsrc/drtpics.cc + dcmrt/libsrc/drtplan.cc + dcmrt/libsrc/drtporcs.cc + dcmrt/libsrc/drtporis.cc + dcmrt/libsrc/drtppcs.cc + dcmrt/libsrc/drtprsis.cc + dcmrt/libsrc/drtpscs.cc + dcmrt/libsrc/drtpsics.cc + dcmrt/libsrc/drtpss.cc + dcmrt/libsrc/drtpsss.cc + dcmrt/libsrc/drtpvis.cc + dcmrt/libsrc/drtqds.cc + dcmrt/libsrc/drtras.cc + dcmrt/libsrc/drtrbas2.cc + dcmrt/libsrc/drtrbas8.cc + dcmrt/libsrc/drtrbls.cc + dcmrt/libsrc/drtrbos1.cc + dcmrt/libsrc/drtrbos6.cc + dcmrt/libsrc/drtrbos7.cc + dcmrt/libsrc/drtrbs2.cc + dcmrt/libsrc/drtrbs4.cc + dcmrt/libsrc/drtrbs8.cc + dcmrt/libsrc/drtrcdrs.cc + dcmrt/libsrc/drtrcos.cc + dcmrt/libsrc/drtrcps.cc + dcmrt/libsrc/drtrcs.cc + dcmrt/libsrc/drtrdros.cc + dcmrt/libsrc/drtrdrs1.cc + dcmrt/libsrc/drtrdrs6.cc + dcmrt/libsrc/drtrdrs8.cc + dcmrt/libsrc/drtrds.cc + dcmrt/libsrc/drtrecs.cc + dcmrt/libsrc/drtrfgs.cc + dcmrt/libsrc/drtrfors.cc + dcmrt/libsrc/drtrics.cc + dcmrt/libsrc/drtrims.cc + dcmrt/libsrc/drtris.cc + dcmrt/libsrc/drtrlsds.cc + dcmrt/libsrc/drtrmdrs.cc + dcmrt/libsrc/drtrms.cc + dcmrt/libsrc/drtrmss6.cc + dcmrt/libsrc/drtrmss7.cc + dcmrt/libsrc/drtrpcs.cc + dcmrt/libsrc/drtrpis.cc + dcmrt/libsrc/drtrppcs.cc + dcmrt/libsrc/drtrpphs.cc + dcmrt/libsrc/drtrpps.cc + dcmrt/libsrc/drtrppss.cc + dcmrt/libsrc/drtrps.cc + dcmrt/libsrc/drtrris1.cc + dcmrt/libsrc/drtrris6.cc + dcmrt/libsrc/drtrris9.cc + dcmrt/libsrc/drtrrms.cc + dcmrt/libsrc/drtrros.cc + dcmrt/libsrc/drtrrpcs.cc + dcmrt/libsrc/drtrrros.cc + dcmrt/libsrc/drtrrs.cc + dcmrt/libsrc/drtrrshs.cc + dcmrt/libsrc/drtrrtps.cc + dcmrt/libsrc/drtrrtps3.cc + dcmrt/libsrc/drtrrtps4.cc + dcmrt/libsrc/drtrrtps5.cc + dcmrt/libsrc/drtrscs.cc + dcmrt/libsrc/drtrsers.cc + dcmrt/libsrc/drtrses.cc + dcmrt/libsrc/drtrshs.cc + dcmrt/libsrc/drtrshs6.cc + dcmrt/libsrc/drtrshs7.cc + dcmrt/libsrc/drtrsis.cc + dcmrt/libsrc/drtrsns.cc + dcmrt/libsrc/drtrsos.cc + dcmrt/libsrc/drtrsrs.cc + dcmrt/libsrc/drtrss.cc + dcmrt/libsrc/drtrsss.cc + dcmrt/libsrc/drtrsts.cc + dcmrt/libsrc/drtrtrs2.cc + dcmrt/libsrc/drtrtrs4.cc + dcmrt/libsrc/drtrvis.cc + dcmrt/libsrc/drtrws.cc + dcmrt/libsrc/drtrwvms.cc + dcmrt/libsrc/drtscris.cc + dcmrt/libsrc/drtsdcs.cc + dcmrt/libsrc/drtsds.cc + dcmrt/libsrc/drtshds.cc + dcmrt/libsrc/drtsis.cc + dcmrt/libsrc/drtsns.cc + dcmrt/libsrc/drtspccs.cc + dcmrt/libsrc/drtspcs.cc + dcmrt/libsrc/drtss.cc + dcmrt/libsrc/drtssrs.cc + dcmrt/libsrc/drtstrct.cc + dcmrt/libsrc/drttms0.cc + dcmrt/libsrc/drttms9.cc + dcmrt/libsrc/drttreat.cc + dcmrt/libsrc/drttscds.cc + dcmrt/libsrc/drttsibs.cc + dcmrt/libsrc/drttsmds.cc + dcmrt/libsrc/drttts.cc + dcmrt/libsrc/drtvls.cc + dcmrt/libsrc/drtwps.cc + dcmrt/libsrc/drtwrs.cc + dcmrt/libsrc/drtwrsrs.cc + dcmrt/libsrc/drtws.cc + dcmrt/libsrc/drtxrs.cc + dcmrt/tests/Makefile.dep + +- Fixed typo in comments. + Affects: dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h + +**** Changes from 2016.10.04 (riesmeier) + +- Updated Context Group classes for DICOM 2016d: + Updated automatically generated Context Group classes for the 2016d + edition of the DICOM standard. There were no changes to the supported + Context Groups. + Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid100.h + dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h + dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h + dcmsr/include/dcmtk/dcmsr/cmr/cid11.h + dcmsr/include/dcmtk/dcmsr/cmr/cid244.h + dcmsr/include/dcmtk/dcmsr/cmr/cid29.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h + dcmsr/include/dcmtk/dcmsr/cmr/cid42.h + dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h + dcmsr/libcmr/cid100.cc + dcmsr/libcmr/cid10013.cc + dcmsr/libcmr/cid10033.cc + dcmsr/libcmr/cid11.cc + dcmsr/libcmr/cid244.cc + dcmsr/libcmr/cid29.cc + dcmsr/libcmr/cid4020.cc + dcmsr/libcmr/cid4021.cc + dcmsr/libcmr/cid4031.cc + dcmsr/libcmr/cid42.cc + dcmsr/libcmr/cid6147.cc + dcmsr/libcmr/cid7021.cc + dcmsr/libcmr/cid7181.cc + dcmsr/libcmr/cid7445.cc + dcmsr/libcmr/cid7452.cc + dcmsr/libcmr/cid7453.cc + dcmsr/libcmr/cid7464.cc + dcmsr/libcmr/cid7469.cc + +- Updated code definitions for DICOM 2016d: + Updated automatically generated code definitions for coding scheme "DCM", + "NCIt" and "UMLS" for the 2016d edition of the DICOM standard. + Affects: dcmsr/include/dcmtk/dcmsr/codes/dcm.h + dcmsr/include/dcmtk/dcmsr/codes/ncit.h + dcmsr/include/dcmtk/dcmsr/codes/umls.h + +- Update data dictionary for DICOM 2016d. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +**** Changes from 2016.10.04 (schlamelcher) + +- Fixed a problem in OFtuple's constructor: + GCC 6.2.1 wasn't able to compile OFtuple's constructor, which is fixed in + this commit. + Affects: ofstd/include/dcmtk/ofstd/oftuple.h + +**** Changes from 2016.09.22 (riesmeier) + +- Added new DCMTK modules "dcmtract" and "dcmpmap": + These two (still pretty new) modules were missing in the README file. + Also updated description of "dcmsr" module in order to be consistent + with the Doxygen file. + Affects: README + +**** Changes from 2016.09.21 (onken) + +- Make Manufacturer type 2, consistency fixes: + Thanks to Jörg Riesmeier for the hint and proposed patch. + Affects: dcmiod/include/dcmtk/dcmiod/modenhequipment.h + dcmiod/include/dcmtk/dcmiod/modequipment.h + dcmiod/libsrc/modenhequipment.cc + dcmiod/libsrc/modequipment.cc + +**** Changes from 2016.09.20 (riesmeier) + +- Disable two test cases when building shared libs: + Temporarily disable two new test cases when building shared libraries + because of unresolvable linker errors (static member "EmptyItem" not + found). + See DCMTK Bug #694. + Affects: dcmsr/tests/Makefile.dep + dcmsr/tests/tsrlist.cc + +**** Changes from 2016.09.19 (riesmeier) + +- Fixed compiler warnings on unused variables: + Fixed compiler warnings on unused variables reported by Visual Studio 2010. + Affects: dcmjpls/libcharls/intrface.cc + +- Fixed linker errors on non-gcc platforms: + Fixed linker errors on non-gcc platforms that occurred after adding new + "dcmsr" test cases (which make use of the class DSRListOfItems). + Affects: dcmsr/tests/tsrlist.cc + +**** Changes from 2016.09.17 (riesmeier) + +- Added missing source file (new test cases): + Added new source file that was missing for the previous commit. + Added: dcmsr/tests/tsrlist.cc + +**** Changes from 2016.09.16 (hasenpusch) + +- Fixed include paths in DCMTK's package config file: + Fixed exporting wrong module include paths inside generated DCMTKConfig.cmake. + The specified module include paths went two levels too deep into the folder + hierarchy, leading to system include shadowing under certain circumstances. + This fixes DCMTK bug #692. + Thanks to forum user jakecobb for reporting this bug. + Affects: CMake/DCMTKConfig.cmake.in + +**** Changes from 2016.09.16 (riesmeier) + +- Enhanced template class DSRListOfItems: + Added new methods addItems() and getItems() to the template class + DSRListOfItems. These new methods expect a vector as a parameter + and thus allow for adding/getting multiple items with a single call. + Closes DCMTK Feature #572. + Affects: dcmsr/include/dcmtk/dcmsr/dsrtlist.h + dcmsr/tests/CMakeLists.txt + dcmsr/tests/Makefile.in + dcmsr/tests/tests.cc + +**** Changes from 2016.09.15 (schlamelcher) + +- Further fixes for OFvariant: + OFvariant's copy constructor and assignment operator are now disabled for + types that can not be converted to one of the variant's alternatives (using + OFenable_if). + Fixed OFvariant's fallback implementation for systems that do not provide + memory alignment facilities. + Affects: ofstd/include/dcmtk/ofstd/variadic/variant.h + +**** Changes from 2016.09.14 (riesmeier) + +- Fixed minor issues in modules' documentation: + Fixed minor issues in modules' documentation of "dcmpmap" und "dcmtract". + Some of these are related to Doxygen (the tool that is used for generating + the rendered output) and some have been fixed for reasons of consistency + with other DCMTK modules. + Affects: dcmpmap/docs/dcmpmap.dox + dcmtract/docs/dcmtract.dox + +**** Changes from 2016.09.14 (schlamelcher) + +- Fixes for OFvariant, dcmiod, dcmseg and dcmpmap: + Removed DLL export macros from several template classes as this does not seem + to work for templates. + Introduced a workaround for older C++ compilers regarding base class + definitions in derived classes, e.g. OFvariant will not be available + as OFvariant (without the template parameters) in derived classes on these + compilers. OFvariant and DcmIODImage now define the types 'variant' and + 'IODImage' resp. instead, which may be used in derived classes for referring + to the resp. base class or one of its methods etc. + Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h + dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h + dcmpmap/libsrc/dpmparametricmapbase.cc + dcmseg/libsrc/segdoc.cc + ofstd/include/dcmtk/ofstd/variadic/variant.h + +**** Changes from 2016.09.13 (schlamelcher) + +- Trying possible fix for OFvariant vs DLLs. + Affects: ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/libsrc/ofstd.cc + +**** Changes from 2016.09.12 (riesmeier) + +- Updated coding scheme designator (CP-1567): + Updated coding scheme designator for CID 5000 (Languages) based on recently + approved CP-1567: The designator changed from "IETF4646" to "RFC5646". + Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h + dcmsr/libcmr/cid5000.cc + +- Added support for recently approved CPs: + Added support for CP-1418 and CP-1586 to the data dictionary. + These CPs were approved during last week's DICOM WG-06 t-con. + Also fixed an attribute name change in "dcmrt" due to retirement. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + dcmrt/libsrc/drtarics.cc + +- Added support for new UIDs from Supplement 121: + Added support for new Storage and Query/Retrieve SOP Class UIDs from + Supplement 121 (CT Protocol Storage). + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcuid.cc + dcmnet/docs/movescu.man + dcmnet/docs/storescp.man + dcmnet/etc/storescp.cfg + dcmnet/etc/storescu.cfg + dcmqrdb/docs/dcmqrscp.man + +- Added support for Supplement 121 to dictionary: + Added support for the final text version of Supplement 121 (CT Protocol + Storage) to the data dictionary. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +**** Changes from 2016.09.10 (onken) + +- Corrected value checking and setters for VM > 1: + Some value checks have been filling the VM parameter incorrectly by providing + the value type (like "1C") instead, leading to an error if value checking is + not disabled. + Thanks to Andrey Fedorov for the bug report. + Also, some type of values (e.g. Floating Point Value) allow more than one + value which is now possible using an optional parameter in the related setter() + method. + Affects: dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h + dcmiod/libsrc/iodcontentitemmacro.cc + +**** Changes from 2016.09.05 (onken) + +- Fixed typos and other enhancements. + Affects: dcmpmap/docs/dcmpmap.dox + +**** Changes from 2016.09.02 (onken) + +- Make sure setValueType() sets correct string value: + Due to a copy/paste error setValueType() has constantly set the value "CODE" + instead of the value provided by the user. + Affects: dcmiod/libsrc/iodcontentitemmacro.cc + +**** Changes from 2016.09.01 (onken) + +- Remove default value for first parameter: + Remove default value for first method parameter in constructor + since otherwise Visual Studio moans that it overlaps with the + default constructor (which is undefined and private, though). + Affects: dcmiod/include/dcmtk/dcmiod/iodmacro.h + +- Introduced new module dcmpmap for Parametric Maps: + The new dcmpmap module offers an API for creation, loading, accessing and + saving DICOM Parametric Map objects as introduced in DICOM Supplement 172. + All binary data types supported by the standard (16 bit signed and unsigned + integer as well as 32 bit and 64 bit floating point data) are handled by the + library. + Acknowledgement: This work has been supported in part by the "QIICR" project. + QIICR is supported by NIH National Cancer Institute, award U24 CA180918. + Added: dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h + dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h + dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h + dcmfg/libsrc/fgframeanatomy.cc + dcmfg/libsrc/fgidentpixeltransform.cc + dcmfg/libsrc/fgparametricmapframetype.cc + dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h + dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h + dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h + dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h + dcmiod/libsrc/iodcontentitemmacro.cc + dcmiod/libsrc/modfloatingpointimagepixel.cc + dcmiod/libsrc/modimagepixelbase.cc + dcmiod/tests/timagepixel.cc + dcmpmap/CMakeLists.txt + dcmpmap/Makefile.in + dcmpmap/configure + dcmpmap/data/Makefile.in + dcmpmap/docs/Makefile.in + dcmpmap/docs/dcmpmap.dox + dcmpmap/etc/Makefile.in + dcmpmap/include/CMakeLists.txt + dcmpmap/include/Makefile.in + dcmpmap/include/dcmtk/dcmpmap/dpmdef.h + dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h + dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h + dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h + dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h + dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h + dcmpmap/libsrc/CMakeLists.txt + dcmpmap/libsrc/Makefile.dep + dcmpmap/libsrc/Makefile.in + dcmpmap/libsrc/dpmmodparametricmapimage.cc + dcmpmap/libsrc/dpmmodparametricmapseries.cc + dcmpmap/libsrc/dpmparametricmapbase.cc + dcmpmap/libsrc/dpmparametricmapiod.cc + dcmpmap/libsrc/dpmtypes.cc + dcmpmap/tests/Makefile.dep + dcmpmap/tests/Makefile.in + ofstd/include/dcmtk/ofstd/ofvriant.h + ofstd/include/dcmtk/ofstd/variadic/helpers.h + ofstd/include/dcmtk/ofstd/variadic/variant.h + ofstd/tests/tvariant.cc + Removed: dcmiod/libsrc/iodimage.cc + Affects: CMakeLists.txt + Makefile + config/modules + dcmdata/include/dcmtk/dcmdata/dcerror.h + dcmfg/include/dcmtk/dcmfg/fgderimg.h + dcmfg/include/dcmtk/dcmfg/fgfracon.h + dcmfg/include/dcmtk/dcmfg/fginterface.h + dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h + dcmfg/include/dcmtk/dcmfg/fgtypes.h + dcmfg/include/dcmtk/dcmfg/stack.h + dcmfg/libsrc/CMakeLists.txt + dcmfg/libsrc/Makefile.dep + dcmfg/libsrc/fgbase.cc + dcmfg/libsrc/fgderimg.cc + dcmfg/libsrc/fgfact.cc + dcmfg/libsrc/fgfracon.cc + dcmfg/libsrc/fgframevoilut.cc + dcmfg/libsrc/fgimagedatatype.cc + dcmfg/libsrc/fginterface.cc + dcmfg/libsrc/fgpixmsr.cc + dcmfg/libsrc/fgplanor.cc + dcmfg/libsrc/fgplanorvol.cc + dcmfg/libsrc/fgplanpo.cc + dcmfg/libsrc/fgplanposvol.cc + dcmfg/libsrc/fgrealworldvaluemapping.cc + dcmfg/libsrc/fgseg.cc + dcmfg/libsrc/fgtypes.cc + dcmfg/libsrc/fgusimagedescription.cc + dcmiod/include/dcmtk/dcmiod/iodcommn.h + dcmiod/include/dcmtk/dcmiod/iodimage.h + dcmiod/include/dcmtk/dcmiod/iodmacro.h + dcmiod/include/dcmtk/dcmiod/iodutil.h + dcmiod/include/dcmtk/dcmiod/modbase.h + dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h + dcmiod/include/dcmtk/dcmiod/modenhequipment.h + dcmiod/include/dcmtk/dcmiod/modequipment.h + dcmiod/include/dcmtk/dcmiod/modfor.h + dcmiod/include/dcmtk/dcmiod/modimagepixel.h + dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h + dcmiod/include/dcmtk/dcmiod/modsynchronisation.h + dcmiod/libsrc/CMakeLists.txt + dcmiod/libsrc/Makefile.dep + dcmiod/libsrc/Makefile.in + dcmiod/libsrc/iodcommn.cc + dcmiod/libsrc/iodmacro.cc + dcmiod/libsrc/modbase.cc + dcmiod/libsrc/modcommoninstanceref.cc + dcmiod/libsrc/modenhequipment.cc + dcmiod/libsrc/modequipment.cc + dcmiod/libsrc/modfor.cc + dcmiod/libsrc/modimagepixel.cc + dcmiod/libsrc/modmultiframedimension.cc + dcmiod/libsrc/modmultiframefg.cc + dcmiod/libsrc/modsynchronization.cc + dcmiod/libsrc/modusfor.cc + dcmiod/tests/CMakeLists.txt + dcmiod/tests/Makefile.dep + dcmiod/tests/Makefile.in + dcmiod/tests/tests.cc + dcmnet/libsrc/dstorscu.cc + dcmseg/include/dcmtk/dcmseg/segdoc.h + dcmseg/libsrc/Makefile.dep + dcmseg/libsrc/segdoc.cc + dcmtract/libsrc/Makefile.dep + doxygen/htmldocs.dox + ofstd/include/dcmtk/ofstd/oftraits.h + ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/libsrc/Makefile.dep + ofstd/libsrc/ofstd.cc + ofstd/tests/CMakeLists.txt + ofstd/tests/Makefile.dep + ofstd/tests/Makefile.in + ofstd/tests/tests.cc + +**** Changes from 2016.08.23 (riesmeier) + +- Fixed typos in comments and log output. + Affects: config/Makefile.def.in + dcmnet/libsrc/dulparse.cc + +**** Changes from 2016.08.22 (onken) + +- Optimized iterator usage to speed up execution. + Affects: dcmfg/libsrc/fg.cc + dcmfg/libsrc/fginterface.cc + +**** Changes from 2016.08.06 (onken) + +- Updated copyright. + Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h + dcmiod/libsrc/iodcommn.cc + +- Create SourceImageItem from DcmDataset as input: + Thanks to Christian Herz for the suggested patch. + Affects: dcmfg/include/dcmtk/dcmfg/fgderimg.h + dcmfg/libsrc/fgderimg.cc + +- Moved import..() functionality into IODCommon: + Moved import...() into base class of IOD classes in order to make it usable + from all derived IOD implementations, e.g. Segmentation IOD in dcmseg, which + directly offered this function before, and Parametric Maps IOD in dcmpmap. + Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h + dcmiod/libsrc/iodcommn.cc + dcmseg/include/dcmtk/dcmseg/segdoc.h + dcmseg/libsrc/segdoc.cc + +**** Changes from 2016.08.03 (onken) + +- Switched VR and VM in comment. + Affects: dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h + +**** Changes from 2016.07.27 (riesmeier) + +- Fixed warnings with Clang -Wparentheses-equality: + Fixed warnings reported by Clang compiler, which uses -Wparentheses-equality + by default, i.e. removed extraneous parentheses around equality comparison. + Also fixed various typos in comments. + Affects: dcmjpeg/libsrc/djcodece.cc + +**** Changes from 2016.07.25 (riesmeier) + +- Added explicit type cast to avoid warning: + Added explicit typecast to a parameter value in order to avoid a warning + reported by MSVC++ on Windows 64-bit systems. + Affects: dcmimgle/libsrc/dimoimg.cc + +- Changed type of local variable to avoid warning: + Changed type of local variable from size_t to unsigned long in order to + avoid a warning reported by MSVC++ on Windows 64-bit systems. + Affects: dcmjpeg/libsrc/ddpiimpl.cc + +**** Changes from 2016.07.19 (hasenpusch) + +- Fixed and refactored mutex & rwlock tests: + Made sure thread 2 starts after thread 1 claims the first lock. + Closes DCMTK bug #689. + Affects: ofstd/tests/tthread.cc + +**** Changes from 2016.07.18 (riesmeier) + +- Fixed typos in comments. + Affects: dcmsr/include/dcmtk/dcmsr/dsrsoprf.h + dcmsr/libcmr/cid5000.cc + oflog/include/dcmtk/oflog/oflog.h + oflog/libsrc/oflog.cc + +**** Changes from 2016.07.08 (hasenpusch) + +- Fixed potential buffer overflow in libcharls: + Libcharls' encoding facility now reallocates the given target buffer if + the initial capacity happens to be too small. + Closes DCMTK bug #688. + Affects: dcmjpls/libcharls/decodstr.h + dcmjpls/libcharls/encodstr.h + dcmjpls/libcharls/header.cc + dcmjpls/libcharls/intrface.cc + dcmjpls/libcharls/intrface.h + dcmjpls/libcharls/pubtypes.h + dcmjpls/libcharls/scan.h + dcmjpls/libcharls/streams.h + dcmjpls/libcharls/util.h + dcmjpls/libsrc/djcodece.cc + **** Changes from 2016.06.30 (schlamelcher) - Updated CHANGES.361 for new development snapshot. diff --git a/doxygen/htmldocs.cfg b/doxygen/htmldocs.cfg index 5e869a64..a90c197d 100644 --- a/doxygen/htmldocs.cfg +++ b/doxygen/htmldocs.cfg @@ -38,7 +38,7 @@ PROJECT_NAME = DCMTK # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "Version @DCMTK_VERSION@ 20160630" +PROJECT_NUMBER = "Version @DCMTK_VERSION@ 20170228" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -725,7 +725,7 @@ WARN_IF_DOC_ERROR = YES # documentation, but not about the absence of documentation. # The default value is: NO. -WARN_NO_PARAMDOC = NO +WARN_NO_PARAMDOC = YES # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which diff --git a/doxygen/htmldocs.dox b/doxygen/htmldocs.dox index 770d4478..b4ecff75 100644 --- a/doxygen/htmldocs.dox +++ b/doxygen/htmldocs.dox @@ -17,6 +17,7 @@ DCMTK contains the following sub-packages, each in its own sub-directory: \li \ref mod_dcmjpeg \li \ref mod_dcmjpls \li \ref mod_dcmnet +\li \ref mod_dcmpmap \li \ref mod_dcmpstat \li \ref mod_dcmqrdb \li \ref mod_dcmrt diff --git a/doxygen/manpages.cfg b/doxygen/manpages.cfg index 668ff433..03e4f1b7 100644 --- a/doxygen/manpages.cfg +++ b/doxygen/manpages.cfg @@ -38,7 +38,7 @@ PROJECT_NAME = "OFFIS DCMTK" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "@DCMTK_VERSION@ 20160630" +PROJECT_NUMBER = "@DCMTK_VERSION@ 20170228" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doxygen/manpages/man1/dcm2json.1 b/doxygen/manpages/man1/dcm2json.1 new file mode 100644 index 00000000..b94c04b2 --- /dev/null +++ b/doxygen/manpages/man1/dcm2json.1 @@ -0,0 +1,305 @@ +.TH "dcm2json" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.nh +.SH NAME +dcm2json \- Convert DICOM file and data set to JSON + +.SH "SYNOPSIS" +.PP +.PP +.nf +dcm2json [options] dcmfile-in [jsonfile-out] +.fi +.PP +.SH "DESCRIPTION" +.PP +The \fBdcm2json\fP utility converts the contents of a DICOM file (file format or raw data set) to JSON (JavaScript Object Notation)\&. The output refers to the 'DICOM JSON Model', which is found in DICOM Part 18 Section F\&. +.PP +If \fBdcm2json\fP reads a raw data set (DICOM data without a file format meta-header) it will attempt to guess the transfer syntax by examining the first few bytes of the file\&. It is not always possible to correctly guess the transfer syntax and it is better to convert a data set to a file format whenever possible (using the \fBdcmconv\fP utility)\&. It is also possible to use the \fI-f\fP and \fI-t[ieb]\fP options to force \fBdcm2json\fP to read a data set with a particular transfer syntax\&. +.SH "PARAMETERS" +.PP +.PP +.nf +dcmfile-in DICOM input filename to be converted + +jsonfile-out JSON output filename (default: stdout) +.fi +.PP +.SH "OPTIONS" +.PP +.SS "general options" +.PP +.nf + -h --help + print this help text and exit + + --version + print version information and exit + + --arguments + print expanded command line arguments + + -q --quiet + quiet mode, print no warnings and errors + + -v --verbose + verbose mode, print processing details + + -d --debug + debug mode, print debug information + + -ll --log-level [l]evel: string constant + (fatal, error, warn, info, debug, trace) + use level l for the logger + + -lc --log-config [f]ilename: string + use config file f for the logger +.fi +.PP +.SS "input options" +.PP +.nf +input file format: + + +f --read-file + read file format or data set (default) + + +fo --read-file-only + read file format only + + -f --read-dataset + read data set without file meta information + +input transfer syntax: + + -t= --read-xfer-auto + use TS recognition (default) + + -td --read-xfer-detect + ignore TS specified in the file meta header + + -te --read-xfer-little + read with explicit VR little endian TS + + -tb --read-xfer-big + read with explicit VR big endian TS + + -ti --read-xfer-implicit + read with implicit VR little endian TS +.fi +.PP +.SS "output options" +.PP +.nf +output format: + + +fc --formatted-code + output file with human readable formatting (default) + + -fc --compact-code + output without formatting (single line of code) + + +m --write-meta + write data set with meta information +.fi +.PP +.SH "JSON Format" +.PP +The basic structure of the JSON output created from a DICOM file looks like the following (see DICOM Part 18 Section F for details): +.PP +.PP +.nf +{ + "00080005": { + "vr": "CS", + "Value": [ + "ISO_IR192" + ] + }, + "00080020": { + "vr": "DT", + "Value": [ + "20130409" + ] + }, + "00080030": { + "vr": "TM", + "Value": [ + "131600.0000" + ] + }, + "00080050": { + "vr": "SH", + "Value": [ + "11235813" + ] + }, + "00080056": { + "vr": "CS", + "Value": [ + "ONLINE" + ] + }, + "00080061": { + "vr": "CS", + "Value": [ + "CT", + "PET" + ] + }, + "00080090": { + "vr": "PN", + "Value": [ + { + "Alphabetic": "^Bob^^Dr." + } + ] + }, + "00081190": { + "vr": "UR", + "Value": [ + "http://wado.nema.org/studies/ + 1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" + ] + }, + "00090010": { + "vr": "LO", + "Value": [ + "Vendor A" + ] + }, + "00091002": { + "vr": "UN", + "InlineBinary": "z0x9c8v7" + }, + "00100010": { + "vr": "PN", + "Value": [ + { + "Alphabetic": "Wang^XiaoDong" + } + ] + }, + "00100020": { + "vr": "LO", + "Value": [ + "12345" + ] + }, + "00100021": { + "vr": "LO", + "Value": [ + "Hospital A" + ] + }, + "00100030": { + "vr": "DT", + "Value": [ + "19670701" + ] + }, + "00100040": { + "vr": "CS", + "Value": [ + "M" + ] + }, + "00101002": { + "vr": "SQ", + "Value": [ + { + "00100020": { + "vr": "LO", + "Value": [ + "54321" + ] + }, + "00100021": { + "vr": "LO", + "Value": [ + "Hospital B" + ] + } + }, + { + "00100020": { + "vr": "LO", + "Value": [ + "24680" + ] + }, + "00100021": { + "vr": "LO", + "Value": [ + "Hospital C" + ] + } + } + ] + }, + "0020000D": { + "vr": "UI", + "Value": [ + "1.2.392.200036.9116.2.2.2.1762893313.1029997326.945873" + ] + }, + "00200010": { + "vr": "SH", + "Value": [ + "11235813" + ] + }, + "00201206": { + "vr": "IS", + "Value": [ + 4 + ] + }, + "00201208": { + "vr": "IS", + "Value": [ + 942 + ] + } +} +.fi +.PP +.SS "Bulk Data" +Binary data, i\&.e\&. DICOM element values with Value Representations (VR) of OB or OW, as well as OD, OF and UN values are by default not written to the JSON output because of their size\&. Instead, for each element, a new Universally Unique Identifier (UUID) is being generated and written as an value of a BulkDataURI JSON element\&. So far, there is no possibility to write an additional file to hold the binary data for each of the binary data chunks\&. +.SH "NOTES" +.PP +.SS "Character Encoding" +The JSON encoding is determined automatically from the DICOM attribute (0008,0005) 'Specific Character Set' using the following mapping: +.PP +.PP +.nf +ISO Latin 1 "ISO_IR 100" => "UTF-8" +ISO Latin 2 "ISO_IR 101" => "UTF-8" +ISO Latin 3 "ISO_IR 109" => "UTF-8" +ISO Latin 4 "ISO_IR 110" => "UTF-8" +ISO Latin 5 "ISO_IR 148" => "UTF-8" +Cyrillic "ISO_IR 144" => "UTF-8" +Arabic "ISO_IR 127" => "UTF-8" +Greek "ISO_IR 126" => "UTF-8" +Hebrew "ISO_IR 138" => "UTF-8" +.fi +.PP +.SH "LOGGING" +.PP +The level of logging output of the various command line tools and underlying libraries can be specified by the user\&. By default, only errors and warnings are written to the standard error stream\&. Using option \fI--verbose\fP also informational messages like processing details are reported\&. Option \fI--debug\fP can be used to get more details on the internal activity, e\&.g\&. for debugging purposes\&. Other logging levels can be selected using option \fI--log-level\fP\&. In \fI--quiet\fP mode only fatal errors are reported\&. In such very severe error events, the application will usually terminate\&. For more details on the different logging levels, see documentation of module 'oflog'\&. +.PP +In case the logging output should be written to file (optionally with logfile rotation), to syslog (Unix) or the event log (Windows) option \fI--log-config\fP can be used\&. This configuration file also allows for directing only certain messages to a particular output stream and for filtering certain messages based on the module or application where they are generated\&. An example configuration file is provided in \fI/logger\&.cfg\fP\&. +.SH "COMMAND LINE" +.PP +All command line tools use the following notation for parameters: square brackets enclose optional values (0-1), three trailing dots indicate that multiple values are allowed (1-n), a combination of both means 0 to n values\&. +.PP +Command line options are distinguished from parameters by a leading '+' or '-' sign, respectively\&. Usually, order and position of command line options are arbitrary (i\&.e\&. they can appear anywhere)\&. However, if options are mutually exclusive the rightmost appearance is used\&. This behavior conforms to the standard evaluation rules of common Unix shells\&. +.PP +In addition, one or more command files can be specified using an '@' sign as a prefix to the filename (e\&.g\&. \fI@command\&.txt\fP)\&. Such a command argument is replaced by the content of the corresponding text file (multiple whitespaces are treated as a single separator unless they appear between two quotation marks) prior to any further evaluation\&. Please note that a command file cannot contain another command file\&. This simple but effective approach allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \fI/dumppat\&.txt\fP)\&. +.SH "ENVIRONMENT" +.PP +The \fBdcm2json\fP utility will attempt to load DICOM data dictionaries specified in the \fIDCMDICTPATH\fP environment variable\&. By default, i\&.e\&. if the \fIDCMDICTPATH\fP environment variable is not set, the file \fI/dicom\&.dic\fP will be loaded unless the dictionary is built into the application (default for Windows)\&. +.PP +The default behavior should be preferred and the \fIDCMDICTPATH\fP environment variable only used when alternative data dictionaries are required\&. The \fIDCMDICTPATH\fP environment variable has the same format as the Unix shell \fIPATH\fP variable in that a colon (':') separates entries\&. On Windows systems, a semicolon (';') is used as a separator\&. The data dictionary code will attempt to load each file specified in the \fIDCMDICTPATH\fP environment variable\&. It is an error if no data dictionary can be loaded\&. +.SH "COPYRIGHT" +.PP +Copyright (C) 2016-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcm2pdf.1 b/doxygen/manpages/man1/dcm2pdf.1 index d3c602c8..6fc6b809 100644 --- a/doxygen/manpages/man1/dcm2pdf.1 +++ b/doxygen/manpages/man1/dcm2pdf.1 @@ -1,4 +1,4 @@ -.TH "dcm2pdf" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcm2pdf" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcm2pdf \- Extract PDF file from DICOM encapsulated PDF diff --git a/doxygen/manpages/man1/dcm2pnm.1 b/doxygen/manpages/man1/dcm2pnm.1 index 2616a6ce..fa717ac8 100644 --- a/doxygen/manpages/man1/dcm2pnm.1 +++ b/doxygen/manpages/man1/dcm2pnm.1 @@ -1,4 +1,4 @@ -.TH "dcm2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcm2pnm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcm2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP diff --git a/doxygen/manpages/man1/dcm2xml.1 b/doxygen/manpages/man1/dcm2xml.1 index 67efbe61..fb498052 100644 --- a/doxygen/manpages/man1/dcm2xml.1 +++ b/doxygen/manpages/man1/dcm2xml.1 @@ -1,4 +1,4 @@ -.TH "dcm2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcm2xml" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcm2xml \- Convert DICOM file and data set to XML @@ -120,7 +120,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) .fi .PP .SS "output options" @@ -283,4 +284,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBxml2dcm\fP(1), \fBdcmconv\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2002-2015 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2002-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmcjpeg.1 b/doxygen/manpages/man1/dcmcjpeg.1 index 58345cf2..ede78bcb 100644 --- a/doxygen/manpages/man1/dcmcjpeg.1 +++ b/doxygen/manpages/man1/dcmcjpeg.1 @@ -1,4 +1,4 @@ -.TH "dcmcjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmcjpeg" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmcjpeg \- Encode DICOM file to JPEG transfer syntax diff --git a/doxygen/manpages/man1/dcmcjpls.1 b/doxygen/manpages/man1/dcmcjpls.1 index ca504674..a802e256 100644 --- a/doxygen/manpages/man1/dcmcjpls.1 +++ b/doxygen/manpages/man1/dcmcjpls.1 @@ -1,4 +1,4 @@ -.TH "dcmcjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmcjpls" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmcjpls \- Encode DICOM file to JPEG-LS transfer syntax diff --git a/doxygen/manpages/man1/dcmconv.1 b/doxygen/manpages/man1/dcmconv.1 index 5f9fa60a..39571ca5 100644 --- a/doxygen/manpages/man1/dcmconv.1 +++ b/doxygen/manpages/man1/dcmconv.1 @@ -1,4 +1,4 @@ -.TH "dcmconv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmconv" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmconv \- Convert DICOM file encoding @@ -148,6 +148,30 @@ handling of wrong delimitation items: +rd --replace-wrong-delim replace wrong sequence/item delimitation items +handling of illegal undefined length OB/OW elements: + + -oi --illegal-obow-rej + reject dataset with illegal element (default) + + +oi --illegal-obow-conv + convert undefined length OB/OW element to SQ + +handling of VOI LUT Sequence with OW VR and explicit length: + + -vi --illegal-voi-rej + reject dataset with illegal VOI LUT (default) + + +vi --illegal-voi-conv + convert illegal VOI LUT to SQ + +handling of explicit length pixel data for encaps. transfer syntaxes: + + -pe --abort-expl-pixdata + abort on explicit length pixel data (default) + + +pe --use-expl-pixdata + use explicit length pixel data + general handling of parser errors: +Ep --ignore-parse-errors @@ -183,7 +207,8 @@ bitstream format of deflated input: .nf specific character set: - # the following options require support from the libiconv toolkit + # the following options require support from an underlying character + # encoding library (see output of --version on which one is available) +U8 --convert-to-utf8 convert all element values that are affected @@ -318,4 +343,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdcmdump\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 1994-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1994-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmcrle.1 b/doxygen/manpages/man1/dcmcrle.1 index 3cf798ef..92f515cb 100644 --- a/doxygen/manpages/man1/dcmcrle.1 +++ b/doxygen/manpages/man1/dcmcrle.1 @@ -1,4 +1,4 @@ -.TH "dcmcrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmcrle" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmcrle \- Encode DICOM file to RLE transfer syntax diff --git a/doxygen/manpages/man1/dcmdjpeg.1 b/doxygen/manpages/man1/dcmdjpeg.1 index 38264e81..da02ea4b 100644 --- a/doxygen/manpages/man1/dcmdjpeg.1 +++ b/doxygen/manpages/man1/dcmdjpeg.1 @@ -1,4 +1,4 @@ -.TH "dcmdjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdjpeg" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdjpeg \- Decode JPEG-compressed DICOM file @@ -164,7 +164,14 @@ workaround options for incorrect JPEG encodings: # This flag enables a correct decompression of such faulty images, but # at the same time will cause an incorrect decompression of correctly # compressed images. Use with care. -.fi + + +wi --workaround-incpl + enable workaround for incomplete JPEG data + + # This option causes dcmjpeg to ignore incomplete JPEG data + # at the end of a compressed fragment and to start decompressing + # the next frame from the next fragment (if any). This permits + # images with incomplete JPEG data to be decoded..fi .PP .SS "output options" .PP @@ -280,4 +287,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdcmcjpeg\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2001-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2001-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmdjpls.1 b/doxygen/manpages/man1/dcmdjpls.1 index 4e61ba50..297f2b41 100644 --- a/doxygen/manpages/man1/dcmdjpls.1 +++ b/doxygen/manpages/man1/dcmdjpls.1 @@ -1,4 +1,4 @@ -.TH "dcmdjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdjpls" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdjpls \- Decode JPEG-LS compressed DICOM file diff --git a/doxygen/manpages/man1/dcmdrle.1 b/doxygen/manpages/man1/dcmdrle.1 index 8af08b0d..a8d29585 100644 --- a/doxygen/manpages/man1/dcmdrle.1 +++ b/doxygen/manpages/man1/dcmdrle.1 @@ -1,4 +1,4 @@ -.TH "dcmdrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdrle" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdrle \- Decode RLE-compressed DICOM file diff --git a/doxygen/manpages/man1/dcmdspfn.1 b/doxygen/manpages/man1/dcmdspfn.1 index ba9a84d2..0fd64a9f 100644 --- a/doxygen/manpages/man1/dcmdspfn.1 +++ b/doxygen/manpages/man1/dcmdspfn.1 @@ -1,4 +1,4 @@ -.TH "dcmdspfn" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdspfn" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdspfn \- Export standard display curves to a text file diff --git a/doxygen/manpages/man1/dcmdump.1 b/doxygen/manpages/man1/dcmdump.1 index fe755b23..2684b0ed 100644 --- a/doxygen/manpages/man1/dcmdump.1 +++ b/doxygen/manpages/man1/dcmdump.1 @@ -1,4 +1,4 @@ -.TH "dcmdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdump" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdump \- Dump DICOM file and data set @@ -175,6 +175,30 @@ handling of wrong delimitation items: +rd --replace-wrong-delim replace wrong sequence/item delimitation items +handling of illegal undefined length OB/OW elements: + + -oi --illegal-obow-rej + reject dataset with illegal element (default) + + +oi --illegal-obow-conv + convert undefined length OB/OW element to SQ + +handling of VOI LUT Sequence with OW VR and explicit length: + + -vi --illegal-voi-rej + reject dataset with illegal VOI LUT (default) + + +vi --illegal-voi-conv + convert illegal VOI LUT to SQ + +handling of explicit length pixel data for encaps. transfer syntaxes: + + -pe --abort-expl-pixdata + abort on explicit length pixel data (default) + + +pe --use-expl-pixdata + use explicit length pixel data + general handling of parser errors: +Ep --ignore-parse-errors @@ -214,7 +238,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) .fi .PP .SS "output options" @@ -333,4 +358,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdump2dcm\fP(1), \fBdcmconv\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 1994-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1994-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmftest.1 b/doxygen/manpages/man1/dcmftest.1 index a0b2280b..dbe7053c 100644 --- a/doxygen/manpages/man1/dcmftest.1 +++ b/doxygen/manpages/man1/dcmftest.1 @@ -1,4 +1,4 @@ -.TH "dcmftest" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmftest" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmftest \- Test if file uses DICOM part 10 format diff --git a/doxygen/manpages/man1/dcmgpdir.1 b/doxygen/manpages/man1/dcmgpdir.1 index 27b88976..b197a489 100644 --- a/doxygen/manpages/man1/dcmgpdir.1 +++ b/doxygen/manpages/man1/dcmgpdir.1 @@ -1,4 +1,4 @@ -.TH "dcmgpdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmgpdir" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmgpdir \- Create a general purpose DICOMDIR diff --git a/doxygen/manpages/man1/dcmj2pnm.1 b/doxygen/manpages/man1/dcmj2pnm.1 index 7d628f71..f30c77fd 100644 --- a/doxygen/manpages/man1/dcmj2pnm.1 +++ b/doxygen/manpages/man1/dcmj2pnm.1 @@ -1,4 +1,4 @@ -.TH "dcmj2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmj2pnm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmj2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF, JPEG or BMP diff --git a/doxygen/manpages/man1/dcml2pnm.1 b/doxygen/manpages/man1/dcml2pnm.1 index 45e8eaca..8d9eb946 100644 --- a/doxygen/manpages/man1/dcml2pnm.1 +++ b/doxygen/manpages/man1/dcml2pnm.1 @@ -1,4 +1,4 @@ -.TH "dcml2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcml2pnm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcml2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP diff --git a/doxygen/manpages/man1/dcmmkcrv.1 b/doxygen/manpages/man1/dcmmkcrv.1 index 2ff7a1d9..049918d4 100644 --- a/doxygen/manpages/man1/dcmmkcrv.1 +++ b/doxygen/manpages/man1/dcmmkcrv.1 @@ -1,4 +1,4 @@ -.TH "dcmmkcrv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmmkcrv" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmmkcrv \- Add 2D curve data to image diff --git a/doxygen/manpages/man1/dcmmkdir.1 b/doxygen/manpages/man1/dcmmkdir.1 index 2d152a61..5faba29e 100644 --- a/doxygen/manpages/man1/dcmmkdir.1 +++ b/doxygen/manpages/man1/dcmmkdir.1 @@ -1,4 +1,4 @@ -.TH "dcmmkdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmmkdir" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmmkdir \- Create a DICOMDIR file diff --git a/doxygen/manpages/man1/dcmmklut.1 b/doxygen/manpages/man1/dcmmklut.1 index 5b53dab6..5f8a9d88 100644 --- a/doxygen/manpages/man1/dcmmklut.1 +++ b/doxygen/manpages/man1/dcmmklut.1 @@ -1,4 +1,4 @@ -.TH "dcmmklut" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmmklut" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmmklut \- Create DICOM look-up tables diff --git a/doxygen/manpages/man1/dcmodify.1 b/doxygen/manpages/man1/dcmodify.1 index 414f5fe7..70794be0 100644 --- a/doxygen/manpages/man1/dcmodify.1 +++ b/doxygen/manpages/man1/dcmodify.1 @@ -1,4 +1,4 @@ -.TH "dcmodify" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmodify" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmodify \- Modify DICOM files diff --git a/doxygen/manpages/man1/dcmp2pgm.1 b/doxygen/manpages/man1/dcmp2pgm.1 index da0e53b5..42b58d7a 100644 --- a/doxygen/manpages/man1/dcmp2pgm.1 +++ b/doxygen/manpages/man1/dcmp2pgm.1 @@ -1,4 +1,4 @@ -.TH "dcmp2pgm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmp2pgm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmp2pgm \- Read DICOM image and presentation state and render bitmap @@ -83,6 +83,12 @@ bitmap-out output DICOM image or PGM bitmap save presentation state to file .fi .PP +.SH "NOTES" +.PP +.SS "Limitations" +Please note that the \fBdcmp2pgm\fP tool does not render all aspects that are defined by the Grayscale Softcopy Presentation State (GSPS) object but only those that are supported by the underlying DCMTK classes\&. In particular, textual and graphical annotations will not be visible in the output image\&. The reason is that these aspects of a GSPS object are typically rendered by DICOMscope, the graphical user interface that is put on top of the related DCMTK classes and written in Java\&. +.PP +Also concepts that were introduced after the initial definition of the GSPS IOD (see Supplement 33) are ignored\&. This includes Supplement 120 with its extended features like e\&.g\&. Compound Graphics\&. .SH "LOGGING" .PP The level of logging output of the various command line tools and underlying libraries can be specified by the user\&. By default, only errors and warnings are written to the standard error stream\&. Using option \fI--verbose\fP also informational messages like processing details are reported\&. Option \fI--debug\fP can be used to get more details on the internal activity, e\&.g\&. for debugging purposes\&. Other logging levels can be selected using option \fI--log-level\fP\&. In \fI--quiet\fP mode only fatal errors are reported\&. In such very severe error events, the application will usually terminate\&. For more details on the different logging levels, see documentation of module 'oflog'\&. @@ -105,4 +111,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fI/dcmpstat\&.cfg\fP - sample configuration file .SH "COPYRIGHT" .PP -Copyright (C) 1998-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1998-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmprscp.1 b/doxygen/manpages/man1/dcmprscp.1 index cff018b7..7bec28b7 100644 --- a/doxygen/manpages/man1/dcmprscp.1 +++ b/doxygen/manpages/man1/dcmprscp.1 @@ -1,4 +1,4 @@ -.TH "dcmprscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmprscp" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmprscp \- DICOM basic grayscale print management SCP diff --git a/doxygen/manpages/man1/dcmprscu.1 b/doxygen/manpages/man1/dcmprscu.1 index 298279e5..01a52429 100644 --- a/doxygen/manpages/man1/dcmprscu.1 +++ b/doxygen/manpages/man1/dcmprscu.1 @@ -1,4 +1,4 @@ -.TH "dcmprscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmprscu" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmprscu \- Print spooler for presentation state viewer diff --git a/doxygen/manpages/man1/dcmpschk.1 b/doxygen/manpages/man1/dcmpschk.1 index dd3102ff..58af085c 100644 --- a/doxygen/manpages/man1/dcmpschk.1 +++ b/doxygen/manpages/man1/dcmpschk.1 @@ -1,4 +1,4 @@ -.TH "dcmpschk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpschk" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpschk \- Checking tool for presentation states diff --git a/doxygen/manpages/man1/dcmpsmk.1 b/doxygen/manpages/man1/dcmpsmk.1 index c7381490..29121a0c 100644 --- a/doxygen/manpages/man1/dcmpsmk.1 +++ b/doxygen/manpages/man1/dcmpsmk.1 @@ -1,4 +1,4 @@ -.TH "dcmpsmk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpsmk" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpsmk \- Create DICOM grayscale softcopy presentation state diff --git a/doxygen/manpages/man1/dcmpsprt.1 b/doxygen/manpages/man1/dcmpsprt.1 index cecf66c4..9be27dd0 100644 --- a/doxygen/manpages/man1/dcmpsprt.1 +++ b/doxygen/manpages/man1/dcmpsprt.1 @@ -1,4 +1,4 @@ -.TH "dcmpsprt" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpsprt" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpsprt \- Read DICOM images and presentation states and render print job diff --git a/doxygen/manpages/man1/dcmpsrcv.1 b/doxygen/manpages/man1/dcmpsrcv.1 index fc329a4c..0a0b14e1 100644 --- a/doxygen/manpages/man1/dcmpsrcv.1 +++ b/doxygen/manpages/man1/dcmpsrcv.1 @@ -1,4 +1,4 @@ -.TH "dcmpsrcv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpsrcv" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpsrcv \- Network receive for presentation state viewer diff --git a/doxygen/manpages/man1/dcmpssnd.1 b/doxygen/manpages/man1/dcmpssnd.1 index cfd970b8..65963a22 100644 --- a/doxygen/manpages/man1/dcmpssnd.1 +++ b/doxygen/manpages/man1/dcmpssnd.1 @@ -1,4 +1,4 @@ -.TH "dcmpssnd" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpssnd" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpssnd \- Network send for presentation state viewer diff --git a/doxygen/manpages/man1/dcmqridx.1 b/doxygen/manpages/man1/dcmqridx.1 index e02f750b..62b9248b 100644 --- a/doxygen/manpages/man1/dcmqridx.1 +++ b/doxygen/manpages/man1/dcmqridx.1 @@ -1,4 +1,4 @@ -.TH "dcmqridx" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmqridx" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmqridx \- Register a DICOM image file in an image database index file diff --git a/doxygen/manpages/man1/dcmqrscp.1 b/doxygen/manpages/man1/dcmqrscp.1 index be000417..8412ebec 100644 --- a/doxygen/manpages/man1/dcmqrscp.1 +++ b/doxygen/manpages/man1/dcmqrscp.1 @@ -1,4 +1,4 @@ -.TH "dcmqrscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmqrscp" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmqrscp \- DICOM image archive (central test node) @@ -217,6 +217,15 @@ preferred network transfer syntaxes (incoming associations): +xl --prefer-mpeg4-bd prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS + +xr --prefer-rle prefer RLE lossless TS @@ -281,6 +290,15 @@ proposed transmission transfer syntaxes (outgoing associations): -xl --propose-mpeg4-bd propose MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS only + -x2 --propose-mpeg4-2-2d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos only + + -x3 --propose-mpeg4-2-3d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos only + + -xo --propose-mpeg4-2-st + propose MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS only + -xr --propose-rle propose RLE lossless TS and all uncompressed transfer syntaxes @@ -420,6 +438,42 @@ deflate compression level (only with --propose-deflated or +cl --compression-level [l]evel: integer (default: 6) 0=uncompressed, 1=fastest, 9=best compression + +specific character set: + +Cr --use-request-charset + try to convert all element values that are + affected by Specific Character Set (0008,0005) + to the one specified in the request data set, + fall back to the one specified via + --convert-to-xxx if that is not possible + (default, unless overridden by config file) + + -Cr --override-charset + convert affected element values to the character + set specified via --convert-to-xxx, ignoring + the one specified in the request + + +A7 --convert-to-ascii + convert affected element values to 7-bit ASCII + (default, unless overridden by config file) + + +U8 --convert-to-utf8 + convert affected element values to UTF-8 + + +L1 --convert-to-latin1 + convert affected element values to ISO 8859-1 + + +C --convert-to-charset [c]harset: string + convert affected element values to the character + set specified by the DICOM defined term c + + -Ct --transliterate + try to approximate characters that cannot be + represented through similar looking characters + + -Cd --discard-illegal + discard characters that cannot be represented + in destination character set .fi .PP .SH "NOTES" @@ -450,12 +504,14 @@ DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3 DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1 CTImageStorage 1.2.840.10008.5.1.4.1.1.2 EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1 +LegacyConvertedEnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.2 RETIRED_UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3 UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1 MRImageStorage 1.2.840.10008.5.1.4.1.1.4 EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1 MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2 EnhancedMRColorImageStorage 1.2.840.10008.5.1.4.1.1.4.3 +LegacyConvertedEnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.4 RETIRED_NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.5 RETIRED_UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6 UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1 @@ -542,6 +598,7 @@ ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88. EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128 +LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128.1 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 @@ -555,9 +612,6 @@ RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481 RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8 RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 .fi .PP .PP @@ -590,6 +644,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 .fi .PP @@ -732,6 +789,7 @@ RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88. ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 ContentAssessmentResultsStorage 1.2.840.10008.5.1.4.1.1.90.1 EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 @@ -740,6 +798,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 @@ -761,9 +821,6 @@ DICONDE_EddyCurrentMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.601 DRAFT_RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.1 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 RTBrachyApplicationSetupDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.10 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 PrivateShutdownSOPClass 1.2.276.0.7230010.3.4.1915765545.18030.917282194.0 .fi @@ -798,6 +855,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 .fi .PP @@ -900,4 +960,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdcmqridx\fP(1), \fBdcmqrti\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 1993-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1993-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmqrti.1 b/doxygen/manpages/man1/dcmqrti.1 index 0b48e69c..410438cd 100644 --- a/doxygen/manpages/man1/dcmqrti.1 +++ b/doxygen/manpages/man1/dcmqrti.1 @@ -1,4 +1,4 @@ -.TH "dcmqrti" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmqrti" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmqrti \- The Terminal Initiator Telnet Client Program diff --git a/doxygen/manpages/man1/dcmquant.1 b/doxygen/manpages/man1/dcmquant.1 index 4dcfd992..9d168ba9 100644 --- a/doxygen/manpages/man1/dcmquant.1 +++ b/doxygen/manpages/man1/dcmquant.1 @@ -1,4 +1,4 @@ -.TH "dcmquant" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmquant" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmquant \- Convert DICOM color images to palette color diff --git a/doxygen/manpages/man1/dcmrecv.1 b/doxygen/manpages/man1/dcmrecv.1 index bc2d224b..434cc5a2 100644 --- a/doxygen/manpages/man1/dcmrecv.1 +++ b/doxygen/manpages/man1/dcmrecv.1 @@ -1,4 +1,4 @@ -.TH "dcmrecv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmrecv" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmrecv \- Simple DICOM storage SCP (receiver) @@ -283,4 +283,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdcmsend\fP(1), \fBstorescu\fP(1), \fBstorescp\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2013-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2013-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmscale.1 b/doxygen/manpages/man1/dcmscale.1 index 77b73e1a..36bc4388 100644 --- a/doxygen/manpages/man1/dcmscale.1 +++ b/doxygen/manpages/man1/dcmscale.1 @@ -1,4 +1,4 @@ -.TH "dcmscale" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmscale" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmscale \- Scale DICOM images diff --git a/doxygen/manpages/man1/dcmsend.1 b/doxygen/manpages/man1/dcmsend.1 index 2d04ec13..67d0dd56 100644 --- a/doxygen/manpages/man1/dcmsend.1 +++ b/doxygen/manpages/man1/dcmsend.1 @@ -1,4 +1,4 @@ -.TH "dcmsend" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmsend" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmsend \- Simple DICOM storage SCU (sender) @@ -317,4 +317,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdcmrecv\fP(1), \fBstorescu\fP(1), \fBstorescp\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2011-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2011-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dcmsign.1 b/doxygen/manpages/man1/dcmsign.1 index 53e718b9..fa45c4a9 100644 --- a/doxygen/manpages/man1/dcmsign.1 +++ b/doxygen/manpages/man1/dcmsign.1 @@ -1,4 +1,4 @@ -.TH "dcmsign" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmsign" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmsign \- Sign and Verify DICOM Files diff --git a/doxygen/manpages/man1/dcod2lum.1 b/doxygen/manpages/man1/dcod2lum.1 index aec7f548..cde5c6df 100644 --- a/doxygen/manpages/man1/dcod2lum.1 +++ b/doxygen/manpages/man1/dcod2lum.1 @@ -1,4 +1,4 @@ -.TH "dcod2lum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcod2lum" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcod2lum \- Convert hardcopy characteristic curve file to softcopy format diff --git a/doxygen/manpages/man1/dconvlum.1 b/doxygen/manpages/man1/dconvlum.1 index 93d71b84..547db753 100644 --- a/doxygen/manpages/man1/dconvlum.1 +++ b/doxygen/manpages/man1/dconvlum.1 @@ -1,4 +1,4 @@ -.TH "dconvlum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dconvlum" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dconvlum \- Convert VeriLUM files to DCMTK display files diff --git a/doxygen/manpages/man1/drtdump.1 b/doxygen/manpages/man1/drtdump.1 index 69bc3bd4..6c7e7ad8 100644 --- a/doxygen/manpages/man1/drtdump.1 +++ b/doxygen/manpages/man1/drtdump.1 @@ -1,4 +1,4 @@ -.TH "drtdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "drtdump" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME drtdump \- Dump DICOM RT file and data set diff --git a/doxygen/manpages/man1/dsr2html.1 b/doxygen/manpages/man1/dsr2html.1 index 6471461e..80c14b76 100644 --- a/doxygen/manpages/man1/dsr2html.1 +++ b/doxygen/manpages/man1/dsr2html.1 @@ -1,4 +1,4 @@ -.TH "dsr2html" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dsr2html" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dsr2html \- Render DICOM SR file and data set to HTML/XHTML @@ -137,7 +137,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) .fi .PP .SS "output options" @@ -238,6 +239,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 .fi .PP .SS "Character Encoding" @@ -293,4 +296,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdcmconv\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2000-2015 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2000-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dsr2xml.1 b/doxygen/manpages/man1/dsr2xml.1 index 49b116cf..7f5c82ac 100644 --- a/doxygen/manpages/man1/dsr2xml.1 +++ b/doxygen/manpages/man1/dsr2xml.1 @@ -1,4 +1,4 @@ -.TH "dsr2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dsr2xml" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dsr2xml \- Convert DICOM SR file and data set to XML @@ -131,7 +131,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) .fi .PP .SS "output options" @@ -202,6 +203,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 .fi .PP .PP @@ -263,4 +266,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBxml2dsr\fP(1), \fBdcmconv\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2000-2015 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2000-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dsrdump.1 b/doxygen/manpages/man1/dsrdump.1 index 7227495a..3e39de1f 100644 --- a/doxygen/manpages/man1/dsrdump.1 +++ b/doxygen/manpages/man1/dsrdump.1 @@ -1,4 +1,4 @@ -.TH "dsrdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dsrdump" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dsrdump \- Dump DICOM SR file and data set @@ -121,7 +121,8 @@ specific character set: convert all element values that are affected by Specific Character Set (0008,0005) to UTF-8 - # requires support from the libiconv toolkit + # requires support from an underlying character encoding library + # (see output of --version on which one is available) .fi .PP .SS "output options" @@ -216,6 +217,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 .fi .PP .SH "LOGGING" @@ -240,4 +243,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdcmconv\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2000-2015 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2000-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/dump2dcm.1 b/doxygen/manpages/man1/dump2dcm.1 index 8ef03f67..a3f23fbf 100644 --- a/doxygen/manpages/man1/dump2dcm.1 +++ b/doxygen/manpages/man1/dump2dcm.1 @@ -1,4 +1,4 @@ -.TH "dump2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dump2dcm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dump2dcm \- Convert ASCII dump to DICOM file diff --git a/doxygen/manpages/man1/echoscu.1 b/doxygen/manpages/man1/echoscu.1 index a3c9fa9f..7e76e42c 100644 --- a/doxygen/manpages/man1/echoscu.1 +++ b/doxygen/manpages/man1/echoscu.1 @@ -1,4 +1,4 @@ -.TH "echoscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "echoscu" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME echoscu \- DICOM verification (C-ECHO) SCU @@ -66,7 +66,7 @@ application entity titles: association negotiation debugging: - -pts --propose-ts [n]umber: integer (1..33) + -pts --propose-ts [n]umber: integer (1..38) propose n transfer syntaxes -ppc --propose-pc [n]umber: integer (1..128) @@ -127,6 +127,7 @@ key and certificate file format: read keys and certificates as DER file certification authority: + +cf --add-cert-file [c]ertificate filename: string add certificate file to list of certificates @@ -201,4 +202,4 @@ The \fBechoscu\fP utility will attempt to load DICOM data dictionaries specified The default behavior should be preferred and the \fIDCMDICTPATH\fP environment variable only used when alternative data dictionaries are required\&. The \fIDCMDICTPATH\fP environment variable has the same format as the Unix shell \fIPATH\fP variable in that a colon (':') separates entries\&. On Windows systems, a semicolon (';') is used as a separator\&. The data dictionary code will attempt to load each file specified in the \fIDCMDICTPATH\fP environment variable\&. It is an error if no data dictionary can be loaded\&. .SH "COPYRIGHT" .PP -Copyright (C) 1994-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1994-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/findscu.1 b/doxygen/manpages/man1/findscu.1 index caf1e429..a3afe36a 100644 --- a/doxygen/manpages/man1/findscu.1 +++ b/doxygen/manpages/man1/findscu.1 @@ -1,4 +1,4 @@ -.TH "findscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "findscu" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME findscu \- DICOM query (C-FIND) SCU @@ -340,4 +340,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBmovescu\fP(1), \fBdump2dcm\fP(1), \fBdcmodify\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 1994-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1994-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/getscu.1 b/doxygen/manpages/man1/getscu.1 index d78c93ce..13450ef4 100644 --- a/doxygen/manpages/man1/getscu.1 +++ b/doxygen/manpages/man1/getscu.1 @@ -1,4 +1,4 @@ -.TH "getscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "getscu" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME getscu \- DICOM retrieve (C-GET) SCU @@ -127,7 +127,16 @@ preferred storage transfer syntaxes (incoming associations): prefer MPEG4 AVC/H.264 HP / Level 4.1 TS +xl --prefer-mpeg4-bd - prefer MPEG4 AVC/H.264 BD-compatible TS + prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS +xr --prefer-rle prefer RLE lossless TS @@ -273,12 +282,14 @@ DigitalIntraOralXRayImageStorageForPresentation 1.2.840.10008.5.1.4.1.1.1.3 DigitalIntraOralXRayImageStorageForProcessing 1.2.840.10008.5.1.4.1.1.1.3.1 CTImageStorage 1.2.840.10008.5.1.4.1.1.2 EnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.1 +LegacyConvertedEnhancedCTImageStorage 1.2.840.10008.5.1.4.1.1.2.2 RETIRED_UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3 UltrasoundMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.3.1 MRImageStorage 1.2.840.10008.5.1.4.1.1.4 EnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.1 MRSpectroscopyStorage 1.2.840.10008.5.1.4.1.1.4.2 EnhancedMRColorImageStorage 1.2.840.10008.5.1.4.1.1.4.3 +LegacyConvertedEnhancedMRImageStorage 1.2.840.10008.5.1.4.1.1.4.4 RETIRED_NuclearMedicineImageStorage 1.2.840.10008.5.1.4.1.1.5 RETIRED_UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6 UltrasoundImageStorage 1.2.840.10008.5.1.4.1.1.6.1 @@ -365,6 +376,7 @@ ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88. EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 PositronEmissionTomographyImageStorage 1.2.840.10008.5.1.4.1.1.128 +LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128.1 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 @@ -378,9 +390,6 @@ RTTreatmentSummaryRecordStorage 1.2.840.10008.5.1.4.1.1.481 RTIonPlanStorage 1.2.840.10008.5.1.4.1.1.481.8 RTIonBeamsTreatmentRecordStorage 1.2.840.10008.5.1.4.1.1.481.9 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 .fi .PP .PP @@ -413,6 +422,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 .fi .PP @@ -453,4 +465,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBfindscu\fP(1), \fBmovescu\fP(1), \fBdump2dcm\fP(1), \fBdcmodify\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2011-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2011-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/img2dcm.1 b/doxygen/manpages/man1/img2dcm.1 index a95358c9..275835a8 100644 --- a/doxygen/manpages/man1/img2dcm.1 +++ b/doxygen/manpages/man1/img2dcm.1 @@ -1,4 +1,4 @@ -.TH "img2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "img2dcm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME img2dcm \- Convert standard image formats into DICOM format diff --git a/doxygen/manpages/man1/movescu.1 b/doxygen/manpages/man1/movescu.1 index 423b320a..f7cb8622 100644 --- a/doxygen/manpages/man1/movescu.1 +++ b/doxygen/manpages/man1/movescu.1 @@ -1,4 +1,4 @@ -.TH "movescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "movescu" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME movescu \- DICOM retrieve (C-MOVE) SCU @@ -129,6 +129,15 @@ preferred network transfer syntaxes (incoming associations): +xl --prefer-mpeg4-bd prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS + +xr --prefer-rle prefer RLE lossless TS @@ -508,6 +517,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 @@ -564,6 +575,11 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 +HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107 +HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 .fi .PP @@ -596,6 +612,37 @@ All command line tools use the following notation for parameters: square bracket Command line options are distinguished from parameters by a leading '+' or '-' sign, respectively\&. Usually, order and position of command line options are arbitrary (i\&.e\&. they can appear anywhere)\&. However, if options are mutually exclusive the rightmost appearance is used\&. This behavior conforms to the standard evaluation rules of common Unix shells\&. .PP In addition, one or more command files can be specified using an '@' sign as a prefix to the filename (e\&.g\&. \fI@command\&.txt\fP)\&. Such a command argument is replaced by the content of the corresponding text file (multiple whitespaces are treated as a single separator unless they appear between two quotation marks) prior to any further evaluation\&. Please note that a command file cannot contain another command file\&. This simple but effective approach allows one to summarize common combinations of options/parameters and avoids longish and confusing command lines (an example is provided in file \fI/dumppat\&.txt\fP)\&. +.SH "EXIT CODES" +.PP +The \fBmovescu\fP utility uses the following exit codes when terminating\&. This enables the user to check for the reason why the application terminated\&. +.SS "general" +.PP +.nf +EXITCODE_NO_ERROR 0 +EXITCODE_COMMANDLINE_SYNTAX_ERROR 1 +EXITCODE_INSUFFICIENT_PRIVILEGES 2 +EXITCODE_SETUID_FAILED 3 +.fi +.PP +.SS "output file errors" +.PP +.nf +EXITCODE_CANNOT_WRITE_OUTPUT_FILE 40 +EXITCODE_INVALID_OUTPUT_DIRECTORY 45 +.fi +.PP +.SS "network errors" +.PP +.nf +EXITCODE_CANNOT_INITIALIZE_NETWORK 60 +EXITCODE_CANNOT_NEGOTIATE_ASSOCIATION 61 +EXITCODE_CANNOT_CREATE_ASSOC_PARAMETERS 65 +EXITCODE_NO_PRESENTATION_CONTEXT 66 +EXITCODE_CANNOT_CLOSE_ASSOCIATION 67 +EXITCODE_CMOVE_WARNING 68 +EXITCODE_CMOVE_ERROR 69 +.fi +.PP .SH "ENVIRONMENT" .PP The \fBmovescu\fP utility will attempt to load DICOM data dictionaries specified in the \fIDCMDICTPATH\fP environment variable\&. By default, i\&.e\&. if the \fIDCMDICTPATH\fP environment variable is not set, the file \fI/dicom\&.dic\fP will be loaded unless the dictionary is built into the application (default for Windows)\&. @@ -606,4 +653,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBfindscu\fP(1), \fBstorescp\fP(1), \fBdump2dcm\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 1994-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1994-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/pdf2dcm.1 b/doxygen/manpages/man1/pdf2dcm.1 index 9c15deb8..326f7130 100644 --- a/doxygen/manpages/man1/pdf2dcm.1 +++ b/doxygen/manpages/man1/pdf2dcm.1 @@ -1,4 +1,4 @@ -.TH "pdf2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "pdf2dcm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME pdf2dcm \- Convert PDF file to DICOM diff --git a/doxygen/manpages/man1/storescp.1 b/doxygen/manpages/man1/storescp.1 index 00ac7d76..5fce4428 100644 --- a/doxygen/manpages/man1/storescp.1 +++ b/doxygen/manpages/man1/storescp.1 @@ -1,4 +1,4 @@ -.TH "storescp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "storescp" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME storescp \- DICOM storage (C-STORE) SCP @@ -117,6 +117,15 @@ preferred network transfer syntaxes (not with --config-file): +xl --prefer-mpeg4-bd prefer MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS + +x2 --prefer-mpeg4-2-2d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos + + +x3 --prefer-mpeg4-2-3d + prefer MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos + + +xo --prefer-mpeg4-2-st + prefer MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS + +xr --prefer-rle prefer RLE lossless TS @@ -144,6 +153,9 @@ other network options: # not available on all systems (e.g. not on Windows) + -ts --socket-timeout [s]econds: integer (default: 60) + timeout for network socket (0 for none) + -ta --acse-timeout [s]econds: integer (default: 30) timeout for ACSE messages @@ -594,6 +606,7 @@ RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88. ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 ContentAssessmentResultsStorage 1.2.840.10008.5.1.4.1.1.90.1 EncapsulatedPDFStorage 1.2.840.10008.5.1.4.1.1.104.1 EncapsulatedCDAStorage 1.2.840.10008.5.1.4.1.1.104.2 @@ -602,6 +615,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 @@ -623,9 +638,6 @@ DICONDE_EddyCurrentMultiframeImageStorage 1.2.840.10008.5.1.4.1.1.601 DRAFT_RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.1 RTBeamsDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.7 RTBrachyApplicationSetupDeliveryInstructionStorage 1.2.840.10008.5.1.4.34.10 -GenericImplantTemplateStorage 1.2.840.10008.5.1.4.43.1 -ImplantAssemblyTemplateStorage 1.2.840.10008.5.1.4.44.1 -ImplantTemplateGroupStorage 1.2.840.10008.5.1.4.45.1 .fi .PP .PP @@ -661,6 +673,8 @@ MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 +HEVCMainProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.107 +HEVCMain10ProfileLevel5_1TransferSyntax 1.2.840.10008.1.2.4.108 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 .fi .PP @@ -712,4 +726,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBstorescu\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 1996-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1996-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/storescu.1 b/doxygen/manpages/man1/storescu.1 index 275ed6a7..86f6fd18 100644 --- a/doxygen/manpages/man1/storescu.1 +++ b/doxygen/manpages/man1/storescu.1 @@ -1,4 +1,4 @@ -.TH "storescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "storescu" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME storescu \- DICOM storage (C-STORE) SCU @@ -160,6 +160,15 @@ proposed transmission transfer syntaxes (not with --config-file): -xl --propose-mpeg4-bd propose MPEG4 AVC/H.264 BD-compatible HP / Level 4.1 TS only + -x2 --propose-mpeg4-2-2d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 2D Videos only + + -x3 --propose-mpeg4-2-3d + propose MPEG4 AVC/H.264 HP / Level 4.2 TS for 3D Videos only + + -xo --propose-mpeg4-2-st + propose MPEG4 AVC/H.264 Stereo HP / Level 4.2 TS only + -xr --propose-rle propose RLE lossless TS and all uncompressed transfer syntaxes @@ -214,6 +223,9 @@ other network options: -to --timeout [s]econds: integer (default: unlimited) timeout for connection requests + -ts --socket-timeout [s]econds: integer (default: 60) + timeout for network socket (0 for none) + -ta --acse-timeout [s]econds: integer (default: 30) timeout for ACSE messages @@ -422,6 +434,9 @@ MPEG2MainProfileAtMainLevelTransferSyntax 1.2.840.10008.1.2.4.100 MPEG2MainProfileAtHighLevelTransferSyntax 1.2.840.10008.1.2.4.101 MPEG4HighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.102 MPEG4BDcompatibleHighProfileLevel4_1TransferSyntax 1.2.840.10008.1.2.4.103 +MPEG4HighProfileLevel4_2_For2DVideoTransferSyntax 1.2.840.10008.1.2.4.104 +MPEG4HighProfileLevel4_2_For3DVideoTransferSyntax 1.2.840.10008.1.2.4.105 +MPEG4StereoHighProfileLevel4_2TransferSyntax 1.2.840.10008.1.2.4.106 RLELosslessTransferSyntax 1.2.840.10008.1.2.5 .fi .PP @@ -459,4 +474,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBstorescp\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 1996-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 1996-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/termscu.1 b/doxygen/manpages/man1/termscu.1 index a968b58f..96d58cdc 100644 --- a/doxygen/manpages/man1/termscu.1 +++ b/doxygen/manpages/man1/termscu.1 @@ -1,4 +1,4 @@ -.TH "termscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "termscu" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME termscu \- DICOM termination SCU @@ -99,4 +99,4 @@ The \fBtermscu\fP utility will attempt to load DICOM data dictionaries specified The default behavior should be preferred and the \fIDCMDICTPATH\fP environment variable only used when alternative data dictionaries are required\&. The \fIDCMDICTPATH\fP environment variable has the same format as the Unix shell \fIPATH\fP variable in that a colon (':') separates entries\&. On Windows systems, a semicolon (';') is used as a separator\&. The data dictionary code will attempt to load each file specified in the \fIDCMDICTPATH\fP environment variable\&. It is an error if no data dictionary can be loaded\&. .SH "COPYRIGHT" .PP -Copyright (C) 2005-2014 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2005-2017 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/doxygen/manpages/man1/wlmscpfs.1 b/doxygen/manpages/man1/wlmscpfs.1 index 0e129993..badfde6b 100644 --- a/doxygen/manpages/man1/wlmscpfs.1 +++ b/doxygen/manpages/man1/wlmscpfs.1 @@ -1,4 +1,4 @@ -.TH "wlmscpfs" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "wlmscpfs" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME wlmscpfs \- DICOM Basic Worklist Management SCP (based on data files) @@ -220,10 +220,13 @@ Currently, the \fBwlmscpfs\fP application supports the following attributes as m .PP .PP .nf +(0008,0020) StudyDate +(0008,0030) StudyTime (0008,0050) AccessionNumber (0008,0090) ReferringPhysicianName (0010,0010) PatientName (0010,0020) PatientID +(0010,0021) IssuerOfPatientID (0010,0030) PatientBirthDate (0010,0040) PatientSex (0010,2297) Responsible Person diff --git a/doxygen/manpages/man1/xml2dcm.1 b/doxygen/manpages/man1/xml2dcm.1 index 24bcd7b1..2678b81d 100644 --- a/doxygen/manpages/man1/xml2dcm.1 +++ b/doxygen/manpages/man1/xml2dcm.1 @@ -1,4 +1,4 @@ -.TH "xml2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "xml2dcm" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME xml2dcm \- Convert XML document to DICOM file or data set diff --git a/doxygen/manpages/man1/xml2dsr.1 b/doxygen/manpages/man1/xml2dsr.1 index cee3c230..13041d58 100644 --- a/doxygen/manpages/man1/xml2dsr.1 +++ b/doxygen/manpages/man1/xml2dsr.1 @@ -1,4 +1,4 @@ -.TH "xml2dsr" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "xml2dsr" 1 "Tue Feb 28 2017" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME xml2dsr \- Convert DICOM SR file and data set to XML @@ -184,6 +184,8 @@ XRayRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.67 RadiopharmaceuticalRadiationDoseSRStorage 1.2.840.10008.5.1.4.1.1.88.68 ColonCADSRStorage 1.2.840.10008.5.1.4.1.1.88.69 ImplantationPlanSRDocumentStorage 1.2.840.10008.5.1.4.1.1.88.70 +AcquisitionContextSRStorage 1.2.840.10008.5.1.4.1.1.88.71 +SimplifiedAdultEchoSRStorage 1.2.840.10008.5.1.4.1.1.88.72 .fi .PP .PP @@ -243,4 +245,4 @@ The default behavior should be preferred and the \fIDCMDICTPATH\fP environment v \fBdsr2xml\fP(1) .SH "COPYRIGHT" .PP -Copyright (C) 2003-2015 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. +Copyright (C) 2003-2016 by OFFIS e\&.V\&., Escherweg 2, 26121 Oldenburg, Germany\&. diff --git a/oflog/include/dcmtk/oflog/config/defines.h b/oflog/include/dcmtk/oflog/config/defines.h index 91619155..3a0f8f5b 100644 --- a/oflog/include/dcmtk/oflog/config/defines.h +++ b/oflog/include/dcmtk/oflog/config/defines.h @@ -355,7 +355,8 @@ #endif /* Define when iconv() is available. */ -#ifdef WITH_LIBICONV +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV ||\ + DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV #define DCMTK_LOG4CPLUS_WITH_ICONV #define DCMTK_LOG4CPLUS_HAVE_ICONV_H #endif diff --git a/oflog/include/dcmtk/oflog/oflog.h b/oflog/include/dcmtk/oflog/oflog.h index 7f9829b3..25894c1a 100644 --- a/oflog/include/dcmtk/oflog/oflog.h +++ b/oflog/include/dcmtk/oflog/oflog.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2009-2011, OFFIS e.V. + * Copyright (C) 2009-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -63,7 +63,7 @@ public: ERROR_LOG_LEVEL = dcmtk::log4cplus::ERROR_LOG_LEVEL, /// fatal: very severe error events that will presumably lead the application to abort FATAL_LOG_LEVEL = dcmtk::log4cplus::FATAL_LOG_LEVEL, - /// internal: turn off logging competely + /// internal: turn off logging completely OFF_LOG_LEVEL = dcmtk::log4cplus::OFF_LOG_LEVEL }; @@ -95,8 +95,10 @@ class DCMTK_LOG4CPLUS_EXPORT OFLog public: - /** create a new Logger object + /** create a new logger object. + * Logger objects have a reference counting copy-constructor, so returning by-value is cheap. * @param name the name of the logger + * @return requested logger object */ static OFLogger getLogger(const char *name); @@ -108,6 +110,7 @@ class DCMTK_LOG4CPLUS_EXPORT OFLog /** handle the command line options used for logging * @param cmd the command line whose options are handled * @param app the console application which is used for console output and error checking + * @param defaultLevel default log level that is used if not specified on the command line */ static void configureFromCommandLine(OFCommandLine &cmd, OFConsoleApplication &app, diff --git a/oflog/libsrc/CMakeLists.txt b/oflog/libsrc/CMakeLists.txt index 728e786e..59a22517 100644 --- a/oflog/libsrc/CMakeLists.txt +++ b/oflog/libsrc/CMakeLists.txt @@ -10,4 +10,3 @@ ENDIF(WIN32 AND NOT CYGWIN) DCMTK_ADD_LIBRARY(oflog oflog apndimpl appender config consap factory fileap filter globinit hierarchy hierlock layout logger logimpl logevent loglevel loglog lloguser ndc ntelogap nullap objreg patlay pointer property rootlog sleep socketap sockbuff socket strhelp syncprims syslogap threads timehelp clogger env fileinfo lockfile mdc queue snprintf tls version log4judp logmacro asyncap cygwin32 striconv strcloc strccloc ${OFLOG_PLATFORM_LIBRARIES}) DCMTK_TARGET_LINK_MODULES(oflog ofstd) -DCMTK_TARGET_LINK_LIBRARIES(oflog ${WIN32_STD_LIBRARIES}) diff --git a/oflog/libsrc/hierlock.cc b/oflog/libsrc/hierlock.cc index 1f3de4ee..909e99a8 100644 --- a/oflog/libsrc/hierlock.cc +++ b/oflog/libsrc/hierlock.cc @@ -61,7 +61,7 @@ HierarchyLocker::HierarchyLocker(Hierarchy& _h) throw; } } - + HierarchyLocker::~HierarchyLocker() { @@ -72,11 +72,12 @@ HierarchyLocker::~HierarchyLocker() } catch(...) { helpers::getLogLog().error(DCMTK_LOG4CPLUS_TEXT("HierarchyLocker::dtor()- An error occurred while unlocking")); - throw; + // Disabled the following line: Don't throw an exception from a destructor! + // throw; } } -void +void HierarchyLocker::resetConfiguration() { Logger root = h.getRoot(); @@ -92,31 +93,31 @@ HierarchyLocker::resetConfiguration() for(LoggerList::iterator it=loggerList.begin(); it!=loggerList.end(); ++it) { Logger & logger = *it; - + logger.closeNestedAppenders(); logger.removeAllAppenders(); - + logger.setLogLevel(NOT_SET_LOG_LEVEL); logger.setAdditivity(true); } } -Logger +Logger HierarchyLocker::getInstance(const tstring& name) { return h.getInstanceImpl(name, *h.getLoggerFactory()); } -Logger +Logger HierarchyLocker::getInstance(const tstring& name, spi::LoggerFactory& factory) { return h.getInstanceImpl(name, factory); } -void +void HierarchyLocker::addAppender(Logger& logger, SharedAppenderPtr& appender) { for(LoggerList::iterator it=loggerList.begin(); it!=loggerList.end(); ++it) { @@ -127,7 +128,7 @@ HierarchyLocker::addAppender(Logger& logger, SharedAppenderPtr& appender) return; } } - + // I don't have this Logger locked logger.addAppender(appender); } diff --git a/oflog/libsrc/oflog.cc b/oflog/libsrc/oflog.cc index c8a17419..fa14b31b 100644 --- a/oflog/libsrc/oflog.cc +++ b/oflog/libsrc/oflog.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2009-2011, OFFIS e.V. + * Copyright (C) 2009-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -184,7 +184,7 @@ void OFLog::configureFromCommandLine(OFCommandLine &cmd, app.checkValue(cmd.getValue(logConfig)); - // check wether config file exists at all and is readable + // check whether config file exists at all and is readable if (!OFStandard::fileExists(logConfig)) app.printError("Specified --log-config file does not exist"); if (!OFStandard::isReadable(logConfig)) diff --git a/ofstd/include/CMakeLists.txt b/ofstd/include/CMakeLists.txt index 1ccc4c8f..4b9f0f26 100644 --- a/ofstd/include/CMakeLists.txt +++ b/ofstd/include/CMakeLists.txt @@ -1,2 +1,2 @@ # declare installation files -INSTALL(DIRECTORY dcmtk/ofstd DESTINATION ${DCMTK_INSTALL_INCDIR}/dcmtk COMPONENT include FILES_MATCHING PATTERN "*.h") +INSTALL(DIRECTORY dcmtk/ofstd DESTINATION ${DCMTK_INSTALL_INCDIR}/dcmtk COMPONENT include FILES_MATCHING PATTERN "*.h" PATTERN "*.def") diff --git a/ofstd/include/Makefile.in b/ofstd/include/Makefile.in index c0b6f38f..f4544d17 100644 --- a/ofstd/include/Makefile.in +++ b/ofstd/include/Makefile.in @@ -23,6 +23,10 @@ install: for file in dcmtk/ofstd/variadic/*.h ; do \ $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/dcmtk/ofstd/variadic ;\ done + $(configdir)/mkinstalldirs $(DESTDIR)$(includedir)/dcmtk/ofstd/diag + for file in dcmtk/ofstd/diag/*.def ; do \ + $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/dcmtk/ofstd/diag ;\ + done clean: rm -f $(TRASH) diff --git a/ofstd/include/dcmtk/ofstd/diag/cnvrsn.def b/ofstd/include/dcmtk/ofstd/diag/cnvrsn.def new file mode 100644 index 00000000..69a035f9 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/cnvrsn.def @@ -0,0 +1,7 @@ +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wconversion" +#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(4,6,0) +#pragma GCC diagnostic ignored "-Wconversion" +#elif defined(_MSC_VER) +#pragma warning(disable: 4244) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/mmtag.def b/ofstd/include/dcmtk/ofstd/diag/mmtag.def new file mode 100644 index 00000000..95297b76 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/mmtag.def @@ -0,0 +1,9 @@ +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wmismatched-tags" +// GCC and Visual Studio don't seem to have such a warning yet, +// uncomment and replace ? when they do: +//#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(?,?,?) +//#pragma GCC diagnostic ignored "????" +//#elif DCMTK_DIAGNOSTIC_MIN_MSC_VER(????) +//#pragma warning(disable: ????) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/nsdfti.def b/ofstd/include/dcmtk/ofstd/diag/nsdfti.def new file mode 100644 index 00000000..0fdee8bd --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/nsdfti.def @@ -0,0 +1,5 @@ +// Clang and GCC don't seem to have such a warning +// and probably never will for good reasons +#ifdef _MSC_VER +#pragma warning(disable: 4661) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/overflow.def b/ofstd/include/dcmtk/ofstd/diag/overflow.def new file mode 100644 index 00000000..a5f88af9 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/overflow.def @@ -0,0 +1,9 @@ +#if defined(__clang__) +#pragma clang diagnostic ignored "-Winteger-overflow" +#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(4,6,0) +#pragma GCC diagnostic ignored "-Woverflow" +// Visual Studio doesn't seem to have such a warning yet, uncomment +// and replace ???? when it does +//#elif DCMTK_DIAGNOSTIC_MIN_MSC_VER(????) +//#pragma warning(disable: ????) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/piof.def b/ofstd/include/dcmtk/ofstd/diag/piof.def new file mode 100644 index 00000000..08c8edd8 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/piof.def @@ -0,0 +1,9 @@ +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wpredefined-identifier-outside-function" +// GCC and Visual Studio don't seem to have such a warning yet, +// uncomment and replace ? when they do: +//#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(?,?,?) +//#pragma GCC diagnostic ignored "????" +//#elif DCMTK_DIAGNOSTIC_MIN_MSC_VER(????) +//#pragma warning(disable: ????) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/pop.def b/ofstd/include/dcmtk/ofstd/diag/pop.def new file mode 100644 index 00000000..e3aa7197 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/pop.def @@ -0,0 +1,7 @@ +#if defined(__clang__) +#pragma clang diagnostic pop +#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(4,6,0) +#pragma GCC diagnostic pop +#elif defined(_MSC_VER) +#pragma warning(pop) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/push.def b/ofstd/include/dcmtk/ofstd/diag/push.def new file mode 100644 index 00000000..2283e0e4 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/push.def @@ -0,0 +1,7 @@ +#if defined(__clang__) +#pragma clang diagnostic push +#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(4,6,0) +#pragma GCC diagnostic push +#elif defined(_MSC_VER) +#pragma warning(push) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/shadow.def b/ofstd/include/dcmtk/ofstd/diag/shadow.def new file mode 100644 index 00000000..31a8673e --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/shadow.def @@ -0,0 +1,9 @@ +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wshadow" +#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(4,6,0) +#pragma GCC diagnostic ignored "-Wshadow" +// Visual Studio doesn't seem to have such a warning yet, uncomment +// and replace ???? when it does +//#elif DCMTK_DIAGNOSTIC_MIN_MSC_VER(????) +//#pragma warning(disable: ????) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/signcmp.def b/ofstd/include/dcmtk/ofstd/diag/signcmp.def new file mode 100644 index 00000000..95d5e378 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/signcmp.def @@ -0,0 +1,7 @@ +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wsign-compare" +#elif DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(4,6,0) +#pragma GCC diagnostic ignored "-Wsign-compare" +#elif defined(_MSC_VER) +#pragma warning(disable: 4018) +#endif diff --git a/ofstd/include/dcmtk/ofstd/diag/vsprfw.def b/ofstd/include/dcmtk/ofstd/diag/vsprfw.def new file mode 100644 index 00000000..2a87b418 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/diag/vsprfw.def @@ -0,0 +1,5 @@ +// Clang and GCC don't seem to have such a warning +// and probably never will for good reasons +#ifdef _MSC_VER +#pragma warning(disable: 4800) +#endif diff --git a/ofstd/include/dcmtk/ofstd/ofchrenc.h b/ofstd/include/dcmtk/ofstd/ofchrenc.h index dbf18079..012dde3b 100644 --- a/ofstd/include/dcmtk/ofstd/ofchrenc.h +++ b/ofstd/include/dcmtk/ofstd/ofchrenc.h @@ -13,7 +13,7 @@ * * Module: ofstd * - * Author: Joerg Riesmeier + * Author: Joerg Riesmeier, Jan Schlamelcher * * Purpose: Class for character encoding conversion (Header) * @@ -27,89 +27,177 @@ #include "dcmtk/ofstd/ofcond.h" #include "dcmtk/ofstd/ofstring.h" - +#include "dcmtk/ofstd/ofmem.h" /*---------------------* * class declaration * *---------------------*/ /** A class for managing and converting between different character encodings. - * The implementation relies on the libiconv toolkit (if available). + * The implementation relies on ICONV (native implementation or libiconv) or + * ICU, depending on the configuration. + * @remarks An encoder might be shared by copy constructing an + * OFCharacterEncoding object from an existing one. Both objects will refer + * to the same encoder once this is done, which will only be destroyed after + * both objects are, using OFshared_ptr internally. */ class DCMTK_OFSTD_EXPORT OFCharacterEncoding { +public: + + /** Constants to control encoder behavior, e.g.\ regarding illegal character + * sequences. + * Currently defined constants may be used to control the implementation's + * behavior regarding illegal character sequences. + * An illegal character sequence is a sequence of characters in the + * source string that is only valid in the context of the source string's + * character set and has no valid representation in the character set of + * the destination string. + * Use these constants to control the transcoding behavior in case an + * illegal sequence is encountered. + * @note You may set a single one of the constants as the encoder behavior + * or even a combination (bitwise OR), however, it depends on the + * underlying implementation which flags/combinations are supported. + * Use supportsConversionFlags() to query this information at runtime. + */ + enum ConversionFlags + { + /** Abort transcoding (returning an error condition) if an illegal + * sequence is encountered. + */ + AbortTranscodingOnIllegalSequence = 1, + + /** Skip over any illegal character sequences that are encountered. + */ + DiscardIllegalSequences = 2, + + /** Replace illegal character sequences with an available representation + * in the destination character set that somewhat resembles the meaning + * (i.e.\ ö -> "o). The actual results may vary depending on the + * underlying implementation. + */ + TransliterateIllegalSequences = 4 + }; + + /** get the character encoding of the currently set global locale. + * @remarks Calling this function might be rather exhaustive depending on + * employed character set conversion library. Caching the result might + * therefore be recommended. + * @note The result may be an empty string, if the name of the current + * encoding cannot be determined. + * @return the current locale's character encoding + */ + static OFString getLocaleEncoding(); + + /** determine whether the underlying implementation supports the given + * conversion flags. + * @param flags the flags to query, a combination of + * OFCharacterEncoding::ConversionFlags constants, e.g. + * TransliterateIllegalSequences | DiscardIllegalSequences. + * @return OFTrue if the given flags are supported, OFFalse if not + * or support is unknown. + */ + static OFBool supportsConversionFlags(const unsigned flags); - // allow the DICOM-specific character set class to access protected methods - friend class DcmSpecificCharacterSet; - - public: - - /** constructor. Initializes the member variables, which includes the - * current locale's character encoding. + /** constructor. + * Will create an OFCharacterEncoding instance that does not refer to an + * encoder. */ OFCharacterEncoding(); + /** copy constructor. + * Will share the encoder of another OFCharacterEncoding instance. + * @param rhs another OFCharacterEncoding instance. + */ + OFCharacterEncoding(const OFCharacterEncoding& rhs); + /** destructor */ ~OFCharacterEncoding(); - /** clear the internal state. This also closes the conversion descriptor - * if it was allocated before, so selectEncoding() has to be called again - * before a string can be converted to a new character encoding. + /** copy assignment. + * Effectively calls clear() and then shares the encoder of another + * OFCharacterEncoding instance. + * @param rhs another OFCharacterEncoding instance. + * @return reference to this object */ - void clear(); + OFCharacterEncoding& operator=(const OFCharacterEncoding& rhs); - /** get mode specifying whether a character that cannot be represented in - * the destination character encoding is approximated through one or more - * characters that look similar to the original one - * @return current value of the mode. OFTrue means that the mode is - * enabled, OFFalse means disabled. + /** check whether this object refers to a valid encoder. + * @result OFTrue if this refers to a valid encoder, OFFalse otherwise. */ - OFBool getTransliterationMode() const; +#ifdef DCMTK_USE_CXX11_STL + explicit +#endif + operator OFBool() const; - /** get mode specifying whether characters that cannot be represented in - * the destination character encoding will be silently discarded - * @return current value of the mode. OFTrue means that the mode is - * enabled, OFFalse means disabled. + /** check whether this object does not refer to a valid encoder. + * @result OFFalse if this refers to a valid encoder, OFTrue otherwise. */ - OFBool getDiscardIllegalSequenceMode() const; - - /** set mode specifying whether a character that cannot be represented in - * the destination character encoding is approximated through one or more - * characters that look similar to the original one. By default, this - * mode is disabled. - * @param mode enable mode by OFTrue or disable it by OFFalse - * @return status, EC_Normal if successful, an error code otherwise + OFBool operator!() const; + + /** check whether two OFCharacterEncoding instances refer to the same + * encoder. + * @note This only tests if both objects refer to the exactly same + * encoder, originating from one and the same call to selectEncoding(). + * The result will be OFFalse if both encoders were constructed + * independently of each other, even if exactly the same parameters + * were used. + * @param rhs another OFCharacterEncoding instance. + * @return OFTrue if both instances refer to the same encoder, OFFalse + * otherwise. */ - OFCondition setTransliterationMode(const OFBool mode); - - /** set mode specifying whether characters that cannot be represented in - * the destination character encoding will be silently discarded. By - * default, this mode is disabled. - * @param mode enable mode by OFTrue or disable it by OFFalse - * @return status, EC_Normal if successful, an error code otherwise + OFBool operator==(const OFCharacterEncoding& rhs) const; + + /** check whether two OFCharacterEncoding instances do not refer to the + * same encoder. + * @note This only tests if both objects refer to the exactly same + * encoder, originating from one and the same call to selectEncoding(). + * The result will be OFTrue if both encoders were constructed + * independently of each other, even if exactly the same parameters + * were used. + * @param rhs another OFCharacterEncoding instance. + * @return OFFalse if both instances refer to the same encoder, OFTrue + * otherwise. */ - OFCondition setDiscardIllegalSequenceMode(const OFBool mode); + OFBool operator!=(const OFCharacterEncoding& rhs) const; - /** get the current locale's character encoding - * @return the current locale's character encoding + /** clear the internal state. + * This resets the converter and potentially frees all used resources + * (if this is the last OFCharacterEncoding instance referring to the + * encoder). */ - const OFString &getLocaleEncoding() const; + void clear(); - /** updates the current locale's character encoding. This is only needed - * if the locale setting changed during the lifetime of this object, - * because the current locale's character encoding is always determined - * in the constructor. If possible the canonical encoding names listed - * in "config.charset" (see libiconv toolkit) are used. - * @return status, EC_Normal if successful, an error code otherwise + /** get flags controlling converter behavior, e.g.\ specifying how illegal + * character sequences should be handled during conversion. + * @note This method will always return 0 if no encoder was selected + * using selectEncoding() before calling it. + * @return a combination the IllegalSequenceMode constants (bitwise or) + * that is currently set or 0 if the current mode cannot be determined. */ - OFCondition updateLocaleEncoding(); + unsigned getConversionFlags() const; + + /** set flags controlling converter behavior, e.g.\ illegal character + * sequences should be handled during conversion. + * @pre An encoding has been selected by successfully calling + * OFCharacterEncoding::selectEncoding(), i.e. + * OFCharacterEncoding::isLibraryAvailable() and *this evaluate to + * OFTrue. + * @param flags the conversion flags that shall be used, a combination of + * the OFCharacterEncoding::ConversionFlags constants, e.g. + * TransliterateIllegalSequences | DiscardIllegalSequences. + * @return EC_Normal if the flags were set, an error code otherwise, i.e. + * if the flags are not supported by the underlying implementation. + * @see OFCharacterEncoding::supportsConversionFlags() + */ + OFCondition setConversionFlags(const unsigned flags); /** select source and destination character encoding for subsequent * conversion(s). The encoding names can be found in the documentation - * of the libiconv toolkit. Typical names are "ASCII", "ISO-8859-1" and - * "UTF-8". An empty string denotes the locale dependent character - * encoding (see getLocaleEncoding()). + * of the underlying implementation (e.g. libiconv). Typical names + * are "ASCII", "ISO-8859-1" and "UTF-8". An empty string denotes the + * encoding of the current locale (see getLocaleEncoding()). * @param fromEncoding name of the source character encoding * @param toEncoding name of the destination character encoding * @return status, EC_Normal if successful, an error code otherwise @@ -137,8 +225,8 @@ class DCMTK_OFSTD_EXPORT OFCharacterEncoding * Since the length of the input string has to be specified explicitly, * the string can contain more than one NULL byte. * @param fromString input string to be converted (using the source - * character encoding). A NULL pointer is regarded - * as an empty string. + * character encoding). A NULL pointer is regarded as + * an empty string. * @param fromLength length of the input string (number of bytes without * the trailing NULL byte) * @param toString reference to variable where the converted string @@ -267,18 +355,20 @@ class DCMTK_OFSTD_EXPORT OFCharacterEncoding // --- static helper functions --- - /** check whether the underlying character encoding library is available. - * If the library is not available, no conversion between different - * character encodings will be possible (apart from the Windows-specific - * wide character conversion functions). - * @return OFTrue if the character encoding library is available, OFFalse + /** check whether character set conversion is available, e.g.\ the + * underlying encoding library is available. + * If not, no conversion between different character encodings will be + * possible (apart from the Windows-specific wide character conversion + * functions). + * @return OFTrue if character set conversion is possible, OFFalse * otherwise */ static OFBool isLibraryAvailable(); /** get version information of the underlying character encoding library. - * Typical output format: "LIBICONV, Version 1.14". If the library is not - * available the output is: "" + * Typical output format: "LIBICONV, Version 1.14". If character encoding + * is not available the output is: + * "" * @return name and version number of the character encoding library */ static OFString getLibraryVersionString(); @@ -292,88 +382,12 @@ class DCMTK_OFSTD_EXPORT OFCharacterEncoding */ static size_t countCharactersInUTF8String(const OFString &utf8String); - - protected: - - /// type of the conversion descriptor (used by libiconv) - typedef void* T_Descriptor; - - /** allocate conversion descriptor for the given source and destination - * character encoding. Please make sure that the descriptor is - * deallocated with closeDescriptor() when not needed any longer. - * @param descriptor reference to variable where the newly allocated - * conversion descriptor is stored - * @param fromEncoding name of the source character encoding - * @param toEncoding name of the destination character encoding - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition openDescriptor(T_Descriptor &descriptor, - const OFString &fromEncoding, - const OFString &toEncoding); - - /** deallocate the given conversion descriptor that was previously - * allocated with openDescriptor(). Please do not pass arbitrary values - * to this method, since this will result in a segmentation fault. - * @param descriptor conversion descriptor to be closed. After the - * descriptor has been deallocated, 'descriptor' is - * set to an invalid value - see isDescriptorValid(). - * @return status, EC_Normal if successful, an error code otherwise. In - * case an invalid descriptor is passed, it is not regarded as an error. - */ - OFCondition closeDescriptor(T_Descriptor &descriptor); - - /** check whether the given conversion descriptor is valid, i.e.\ has been - * allocated by a previous call to openDescriptor() - * @param descriptor conversion descriptor to be checked - * @return OFTrue if the conversion descriptor is valid, OFFalse otherwise - */ - OFBool isDescriptorValid(const T_Descriptor descriptor); - - /** convert the given string between the specified character encodings. - * Since the length of the input string has to be specified explicitly, - * the string can contain more than one NULL byte. - * @param descriptor previously allocated conversion descriptor to be - * used for the conversion of the character encodings - * @param fromString input string to be converted (using the source - * character encoding). A NULL pointer is regarded - * as an empty string. - * @param fromLength length of the input string (number of bytes without - * the trailing NULL byte) - * @param toString reference to variable where the converted string - * (using the destination character encoding) is - * stored (or appended, see parameter 'clearMode') - * @param clearMode flag indicating whether to clear the variable - * 'toString' before appending the converted string - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition convertString(T_Descriptor descriptor, - const char *fromString, - const size_t fromLength, - OFString &toString, - const OFBool clearMode = OFTrue); - - private: - // private undefined copy constructor - OFCharacterEncoding(const OFCharacterEncoding &); - - // private undefined assignment operator - OFCharacterEncoding &operator=(const OFCharacterEncoding &); + class Implementation; // --- static helper functions --- - /** create an error condition based on the current value of "errno" and the - * given parameters. The function OFStandard::strerror() is used to map - * the numerical value of the error to a textual description. - * @param status reference to variable where the condition is stored - * @param message message text that is used as a prefix to strerror() - * @param code unique status code of the error condition - */ - static void createErrnoCondition(OFCondition &status, - OFString message, - const unsigned short code); - #ifdef HAVE_WINDOWS_H /** create an error condition based on the return value of "getLastError()" @@ -389,17 +403,9 @@ class DCMTK_OFSTD_EXPORT OFCharacterEncoding #endif // HAVE_WINDOWS_H - /// current locale's character encoding - OFString LocaleEncoding; - - /// conversion descriptor used by libiconv - T_Descriptor ConversionDescriptor; - - /// transliteration mode (default: disabled) - OFBool TransliterationMode; - - /// discard illegal sequence mode (default: disabled) - OFBool DiscardIllegalSequenceMode; + /// shared pointer to internal implementation (interface to character + /// encoding library) + OFshared_ptr TheImplementation; }; diff --git a/ofstd/include/dcmtk/ofstd/ofdate.h b/ofstd/include/dcmtk/ofstd/ofdate.h index 9c181ec9..87089a67 100644 --- a/ofstd/include/dcmtk/ofstd/ofdate.h +++ b/ofstd/include/dcmtk/ofstd/ofdate.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2002-2011, OFFIS e.V. + * Copyright (C) 2002-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -43,7 +43,7 @@ END_EXTERN_C */ class DCMTK_OFSTD_EXPORT OFDate { - // allow class OFDateTime to access protected class members + /// allow class OFDateTime to access protected class members friend class OFDateTime; diff --git a/ofstd/include/dcmtk/ofstd/ofdatime.h b/ofstd/include/dcmtk/ofstd/ofdatime.h index 9ed3d3eb..4a974b4a 100644 --- a/ofstd/include/dcmtk/ofstd/ofdatime.h +++ b/ofstd/include/dcmtk/ofstd/ofdatime.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2002-2011, OFFIS e.V. + * Copyright (C) 2002-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -94,7 +94,7 @@ class DCMTK_OFSTD_EXPORT OFDateTime */ virtual OFBool operator==(const OFDateTime &dateTime) const; - /** comparison operator (unequal) + /** comparison operator (unequal). * Please note that the time values are first transformed to the Coordinated Universal * Time (UTC) before they are compared. However, the special case that there is an * "overflow" from one day to another is currently not handled. @@ -103,6 +103,46 @@ class DCMTK_OFSTD_EXPORT OFDateTime */ virtual OFBool operator!=(const OFDateTime &dateTime) const; + /** comparison operator (less than). + * Please note that the time values are first transformed to the Coordinated Universal + * Time (UTC) before they are compared. However, the special case that there is an + * "overflow" from one day to another is currently not handled. + * @param dateTime date and time value compared with the current value + * @return OFTrue if current date and time is earlier than the given value, OFFalse + * otherwise + */ + virtual OFBool operator<(const OFDateTime &dateTime) const; + + /** comparison operator (less than or equal). + * Please note that the time values are first transformed to the Coordinated Universal + * Time (UTC) before they are compared. However, the special case that there is an + * "overflow" from one day to another is currently not handled. + * @param dateTime date and time value compared with the current value + * @return OFTrue if current date and time is earlier than or identical to the given value, + * OFFalse otherwise + */ + virtual OFBool operator<=(const OFDateTime &dateTime) const; + + /** comparison operator (greater than or equal). + * Please note that the time values are first transformed to the Coordinated Universal + * Time (UTC) before they are compared. However, the special case that there is an + * "overflow" from one day to another is currently not handled. + * @param dateTime date and time value compared with the current value + * @return OFTrue if current date and time is later than or identical to the given value, + * OFFalse otherwise + */ + virtual OFBool operator>=(const OFDateTime &dateTime) const; + + /** comparison operator (greater than). + * Please note that the time values are first transformed to the Coordinated Universal + * Time (UTC) before they are compared. However, the special case that there is an + * "overflow" from one day to another is currently not handled. + * @param dateTime date and time value compared with the current value + * @return OFTrue if current date and time is later than the given value, OFFalse + * otherwise + */ + virtual OFBool operator>(const OFDateTime &dateTime) const; + /** reset the date/time value. * Sets all date and all time components to '0'. NB: Date becomes invalid. */ @@ -221,6 +261,11 @@ class DCMTK_OFSTD_EXPORT OFDateTime private: + /// let DcmDateTime access the members directly + friend class DcmDateTime; + /// let DcmAttributeMatching access the members directly + friend class DcmAttributeMatching; + /// currently stored date value OFDate Date; diff --git a/ofstd/include/dcmtk/ofstd/ofdiag.h b/ofstd/include/dcmtk/ofstd/ofdiag.h new file mode 100644 index 00000000..247f0505 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/ofdiag.h @@ -0,0 +1,165 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: ofstd + * + * Author: Jan Schlamelcher + * + * Purpose: Platform independent macros for suppressing unwanted + * compiler diagnostic output i.e. 'warnings' + * + */ + +#ifndef OFDIAG_H +#define OFDIAG_H + +#ifdef DOXYGEN + +/*! @file ofdiag.h + * @brief Defines macros for controlling compiler diagnostic output, i.e. warnings. + */ + +/*! @brief A macro for pushing a compiler diagnostic scope. + * @note The macro may only be used in conjunction with #include! + * @details + * If the compiler supports diagnostic scopes, using this macro + * will create a new one inside which warning messages might be + * disabled selectively. + * The macro will have no effect if the compiler does not support + * diagnostic scopes. + * @remarks Currently supported compilers are GCC (version 4.6 and later, including + * derivates like MinGW), Clang and Visual Studio. + * @details + *

Example

+ * @code{.cpp} + * int i = 3; + * unsigned ui = 8; + * // will potentially emit a warning, although perfectly safe + * if( i < ui ) + * doStuff(); + * // create a new diagnostic scope + * #include DCMTK_DIAGNOSTIC_PUSH + * // disable the sign mismatch warning + * #include DCMTK_DIAGNOSTIC_IGNORE_SIGN_COMPARE + * // the warning is omitted! + * if( i < ui ) + * doStuff(); + * // restore the parent diagnostic scope potentially enabling + * // the sign mismatch warning again + * #include DCMTK_DIAGNOSTIC_POP + * @endcode + */ +#define DCMTK_DIAGNOSTIC_PUSH + +/*! @brief A macro for pop-ing a compiler diagnostic scope, restoring the parent scope. + * @note The macro may only be used in conjunction with #include! + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_POP + +/*! @brief A macro to disable warnings about comparing signed with unsigned values. + * @note The macro may only be used in conjunction with #include! + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_SIGN_COMPARE + +/*! @brief A macro to disable warnings about overflowing constant expressions. + * @note The macro may only be used in conjunction with #include! + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_OVERFLOW + +/*! @brief A macro to disable warnings about mixing the keywords struct and class. + * @note The macro may only be used in conjunction with #include! + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_MISMATCHED_TAGS + +/*! @brief A macro to disable warnings about using \_\_func\_\_ etc. outside of a function. + * @note The macro may only be used in conjunction with #include! + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_PREDEFINED_IDENTIFIER_OUTSIDE_FUNCTION + +/*! @brief A macro to disable warnings about implicit type conversions that may alter the value. + * @note The macro may only be used in conjunction with #include! + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_IMPLICIT_CONVERSION + +/*! @brief A macro to disable warnings about variable/type name shadowing. + * @note The macro may only be used in conjunction with #include! + * @remarks This warning is typically helpful to prevent unintended behavior, however, small + * structs often have members with matching names as constructor arguments (for consistent + * use/assignment). It makes sense to suppress this warning in that case. + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_SHADOW + +/*! @brief A macro to disable a Visual Studio specific warning about explicit template instantiation. + * @note The macro may only be used in conjunction with #include! + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION + +/*! @brief A macro to disable the Visual Studio specific "performance warning" about implicit conversion + * to a boolean value. + * @note The macro may only be used in conjunction with #include! + * @remarks The warning was meant to indicate that a non boolean value should probably be stored + * as a boolean value in the first place, instead of using an integer (i.e. when C programmers do C++). + * However, that is hardly ever the case and it is mostly and annoyingly emitted in perfectly fine code + * that checks if a value is not equal to zero etc., therefore, suppressing it is usually appropriate. + * @see DCMTK_DIAGNOSTIC_PUSH for an example. + */ +#define DCMTK_DIAGNOSTIC_IGNORE_VISUAL_STUDIO_PERFORMANCE_WARNING + +#else // DOXYGEN + +#define DCMTK_DIAGNOSTIC_PUSH "dcmtk/ofstd/diag/push.def" +#define DCMTK_DIAGNOSTIC_POP "dcmtk/ofstd/diag/pop.def" +#define DCMTK_DIAGNOSTIC_IGNORE_SIGN_COMPARE "dcmtk/ofstd/diag/signcmp.def" +#define DCMTK_DIAGNOSTIC_IGNORE_OVERFLOW "dcmtk/ofstd/diag/overflow.def" +#define DCMTK_DIAGNOSTIC_IGNORE_MISMATCHED_TAGS "dcmtk/ofstd/diag/mmtag.def" +#define DCMTK_DIAGNOSTIC_IGNORE_PREDEFINED_IDENTIFIER_OUTSIDE_FUNCTION "dcmtk/ofstd/diag/piof.def" +#define DCMTK_DIAGNOSTIC_IGNORE_IMPLICIT_CONVERSION "dcmtk/ofstd/diag/cnvrsn.def" +#define DCMTK_DIAGNOSTIC_IGNORE_SHADOW "dcmtk/ofstd/diag/shadow.def" +#define DCMTK_DIAGNOSTIC_IGNORE_NO_SUITABLE_DEFINITION_FOR_TEMPLATE_INSTANTIATION "dcmtk/ofstd/diag/nsdfti.def" +#define DCMTK_DIAGNOSTIC_IGNORE_VISUAL_STUDIO_PERFORMANCE_WARNING "dcmtk/ofstd/diag/vsprfw.def" + +// readable shorthands for compiler version checks +#define DCMTK_DIAGNOSTIC_MIN_GCC_VERSION(MAJOR, MINOR, PATCH)\ +(\ + defined(__GNUC__) &&\ + (\ + __GNUC__ > MAJOR ||\ + (\ + __GNUC__ == MAJOR &&\ + (\ + __GNUC_MINOR__ > MINOR ||\ + (\ + __GNUC_MINOR == MINOR &&\ + __GNUC_PATCHLEVEL__ >= PATCH\ + )\ + )\ + )\ + )\ +) + +#define DCMTK_DIAGNOSTIC_MIN_MSC_VER(VERSION)\ +(\ + defined(_MSC_VER) && _MSC_VER >= VERSION\ +) + +#endif // NOT DOXYGEN + +#endif // OFDIAG_H diff --git a/ofstd/include/dcmtk/ofstd/offile.h b/ofstd/include/dcmtk/ofstd/offile.h index abb71bf7..da2abe10 100644 --- a/ofstd/include/dcmtk/ofstd/offile.h +++ b/ofstd/include/dcmtk/ofstd/offile.h @@ -554,7 +554,17 @@ public: * the beginning of the file. This is equivalent to fseek(0, SEEK_SET) * except that the error indicator for the stream is also cleared. */ - void rewind() { STDIO_NAMESPACE rewind(file_); } + void rewind() + { +#if defined(_WIN32) || defined(__CYGWIN__) + /* On these platforms rewind() fails after reading to the end of file + * if the file is read-only. Using fseek() instead. + */ + (void) this->fseek(0L, SEEK_SET); +#else + STDIO_NAMESPACE rewind(file_); +#endif + } /** clears the end-of-file and error indicators for the stream */ diff --git a/ofstd/include/dcmtk/ofstd/oflimits.h b/ofstd/include/dcmtk/ofstd/oflimits.h index 0dc6f4c9..0f9a7ac5 100644 --- a/ofstd/include/dcmtk/ofstd/oflimits.h +++ b/ofstd/include/dcmtk/ofstd/oflimits.h @@ -1019,7 +1019,11 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_CHAR_MODULO; static const int digits = OFnumeric_limits::is_signed ? CHAR_BIT - 1 : CHAR_BIT; - static const int digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 ); +#ifndef C_CHAR_UNSIGNED + static const int digits10 = DCMTK_SIGNED_CHAR_DIGITS10; +#else + static const int digits10 = DCMTK_UNSIGNED_CHAR_DIGITS10; +#endif static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1056,7 +1060,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_SIGNED_CHAR_MODULO; static const int digits = CHAR_BIT - 1; - static const int digits10 = OFstatic_cast( int, ( CHAR_BIT - 1 ) * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_SIGNED_CHAR_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1093,7 +1097,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_UNSIGNED_CHAR_MODULO; static const int digits = CHAR_BIT; - static const int digits10 = OFstatic_cast( int, CHAR_BIT * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_UNSIGNED_CHAR_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1130,7 +1134,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_SIGNED_SHORT_MODULO; static const int digits = OFstatic_cast( int, CHAR_BIT * sizeof( signed short ) - 1 ); - static const int digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_SIGNED_SHORT_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1167,7 +1171,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_UNSIGNED_SHORT_MODULO; static const int digits = OFstatic_cast( int, CHAR_BIT * sizeof( unsigned short ) ); - static const int digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_UNSIGNED_SHORT_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1204,7 +1208,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_SIGNED_INT_MODULO; static const int digits = OFstatic_cast( int, CHAR_BIT * sizeof( signed int ) - 1 ); - static const int digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_SIGNED_INT_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1241,7 +1245,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_UNSIGNED_INT_MODULO; static const int digits = OFstatic_cast( int, CHAR_BIT * sizeof( unsigned int ) ); - static const int digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_UNSIGNED_INT_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1278,7 +1282,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_SIGNED_LONG_MODULO; static const int digits = OFstatic_cast( int, CHAR_BIT * sizeof( signed long ) - 1 ); - static const int digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_SIGNED_LONG_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1315,7 +1319,7 @@ struct OFnumeric_limits static const OFBool is_bounded = OFTrue; static const OFBool is_modulo = DCMTK_UNSIGNED_LONG_MODULO; static const int digits = OFstatic_cast( int, CHAR_BIT * sizeof( unsigned long ) ); - static const int digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 ); + static const int digits10 = DCMTK_UNSIGNED_LONG_DIGITS10; static const int max_digits10 = 0; static const int radix = 2; static const int min_exponent = 0; @@ -1353,7 +1357,7 @@ struct OFnumeric_limits static const OFBool is_modulo = OFFalse; static const int digits = OFstatic_cast( int, FLT_MANT_DIG ); static const int digits10 = OFstatic_cast( int, FLT_DIG ); - static const int max_digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 + 2 ); + static const int max_digits10 = DCMTK_FLOAT_MAX_DIGITS10; static const int radix = FLT_RADIX; static const int min_exponent = FLT_MIN_EXP; static const int min_exponent10 = FLT_MIN_10_EXP; @@ -1390,7 +1394,7 @@ struct OFnumeric_limits static const OFBool is_modulo = OFFalse; static const int digits = OFstatic_cast( int, DBL_MANT_DIG ); static const int digits10 = OFstatic_cast( int, DBL_DIG ); - static const int max_digits10 = OFstatic_cast( int, OFnumeric_limits::digits * .30102999566398119521373889472449 + 2 ); + static const int max_digits10 = DCMTK_DOUBLE_MAX_DIGITS10; static const int radix = FLT_RADIX; static const int min_exponent = DBL_MIN_EXP; static const int min_exponent10 = DBL_MIN_10_EXP; diff --git a/ofstd/include/dcmtk/ofstd/oflist.h b/ofstd/include/dcmtk/ofstd/oflist.h index 74d6cb5f..a0c3e0fe 100644 --- a/ofstd/include/dcmtk/ofstd/oflist.h +++ b/ofstd/include/dcmtk/ofstd/oflist.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2011, OFFIS e.V. + * Copyright (C) 1997-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -89,7 +89,7 @@ END_EXTERN_C // OFListLinkBase, OFListLink and OFListBase are classes for internal // use only and shall not be used. -/* non-template double linked list. Base class fo OFListLink. +/* non-template double linked list. Base class of OFListLink. * Implicitly used by OFList, should not be called by users. */ struct OFListLinkBase @@ -406,7 +406,11 @@ public: */ void insert(OFIterator position, size_t n, const T& x) { - while(n--) OFListBase::base_insert(position.node, new OFListLink(x)); + while(n) + { + --n; + OFListBase::base_insert(position.node, new OFListLink(x)); + } } /** removes the element at the given position from the list. diff --git a/ofstd/include/dcmtk/ofstd/ofoption.h b/ofstd/include/dcmtk/ofstd/ofoption.h index b41e97fa..ba96a52b 100644 --- a/ofstd/include/dcmtk/ofstd/ofoption.h +++ b/ofstd/include/dcmtk/ofstd/ofoption.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2014, OFFIS e.V. + * Copyright (C) 2014-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -592,6 +592,7 @@ public: friend typename OFenable_if::value,bool>::type operator>( OFnullopt_t, const O& rhs ) { + (void)rhs; return OFFalse; } @@ -606,6 +607,7 @@ public: friend typename OFenable_if::value,bool>::type operator<=( OFnullopt_t, const O& rhs ) { + (void)rhs; return OFTrue; } diff --git a/ofstd/include/dcmtk/ofstd/ofstd.h b/ofstd/include/dcmtk/ofstd/ofstd.h index 97705ac4..684896d1 100644 --- a/ofstd/include/dcmtk/ofstd/ofstd.h +++ b/ofstd/include/dcmtk/ofstd/ofstd.h @@ -884,6 +884,92 @@ class DCMTK_OFSTD_EXPORT OFStandard } } +#ifdef DOXYGEN + /** checks if a string only contains valid decimal digits, i.e.\ 0-9. + * @tparam Count the number of characters (bytes) to check. + * @param string a pointer to a character array to check. + * @return OFTrue if all characters are valid decimal digits, OFFalse + * if at least one non-digit character is encountered. + */ + template + static OFBool checkDigits(const char* string); + + /** extracts digits from a string and converts them to the given integer + * number type. + * The result is similar to calling atoi, but extractDigits does not + * verify all characters are digits and does not require zero terminated + * strings. It is meant to be used in conjunction with + * OFStandard::checkDigits(). extractDigits does not handle sign + * characters ('+' and '-'). + * @tparam T the type of the resulting value, e.g.\ unsigned int. Must + * be a valid integer type, i.e.\ OFnumeric_limits::is_integer must + * be OFTrue. + * @tparam Count the number of digits to extract. Must be greater zero + * and less or equal to OFnumeric_limits::digits10 + * @param string a pointer to a character array to extract digits from. + * @return a value of type T that is equivalent to the number represented + * by the digits. + * @details + * @warning The results are unspecified if the given string contains + * non-digit characters. + */ + template + static T extractDigits(const char*); +#else + template + static OFTypename OFenable_if::type + checkDigits(const char* string) + { + return OFTrue; + } + + template + static OFTypename OFenable_if::type + checkDigits(const char* string) + { + return *string >= '0' && *string <= '9' && + checkDigits( string + 1 ); + } + + template + static OFTypename OFenable_if + < + OFnumeric_limits::is_integer && Count == 1, + T + >::type extractDigits(const char* string) + { + return *string - '0'; + } + + template + static OFTypename OFenable_if + < + OFnumeric_limits::is_integer && ( Count > 1 ) && + OFnumeric_limits::digits10 >= Count, + T + >::type extractDigits(const char* string) + { + return extractDigits( string ) * 10 + + extractDigits( string + Count - 1 ); + } +#endif + + /** An utility function that finds a substring within a string that does + * not contain leading and trailing spaces and null bytes, effectively + * trimming the string without unnecessary copies. + * @param pBegin a reference to a pointer to the beginning of the string. + * @param pEnd a reference to a pointer to the end of the string (the + * first byte behind the string). + * @details + * @pre pBegin <= pEnd + * @details + * trimString() increments pBegin and decrements pEnd until either both + * point to a non-null and non-space character (the position after it in + * case of pEnd) or both become equal (in case the string only contains + * spaces and null bytes). + */ + static void trimString( const char*& pBegin, const char*& pEnd ); + /** Thread-safe version of gethostbyname. * @param name the host name. * @return a OFStandard::OFHostent object. diff --git a/ofstd/include/dcmtk/ofstd/ofthread.h b/ofstd/include/dcmtk/ofstd/ofthread.h index 52a9d363..b64c5fe3 100644 --- a/ofstd/include/dcmtk/ofstd/ofthread.h +++ b/ofstd/include/dcmtk/ofstd/ofthread.h @@ -251,14 +251,6 @@ private: OFThreadSpecificData& operator=(const OFThreadSpecificData& arg); }; - -/* Mac OS X only permits named Semaphores. The code below compiles on Mac OS X - but does not work. This will be corrected in the next snapshot. For now, the - semaphore code is completely disabled for that OS (it is not used in other - parts of the toolkit so far. - */ -#ifndef _DARWIN_C_SOURCE - /** provides an operating system independent abstraction for semaphores. * A semaphore is a non-negative integer counter that is used * to coordinate access to resources. The initial and maximum value of the counter @@ -331,9 +323,6 @@ private: OFSemaphore& operator=(const OFSemaphore& arg); }; - -#endif // _DARWIN_C_SOURCE - /** provides an operating system independent abstraction for mutexes * (mutual exclusion locks). * Mutexes prevent multiple threads from simultaneously executing critical diff --git a/ofstd/include/dcmtk/ofstd/oftraits.h b/ofstd/include/dcmtk/ofstd/oftraits.h index a05b4a7f..a8a4e8b3 100644 --- a/ofstd/include/dcmtk/ofstd/oftraits.h +++ b/ofstd/include/dcmtk/ofstd/oftraits.h @@ -100,7 +100,7 @@ template struct OFconditional { typedef F type; }; template -struct OFintegral_constant { static const T value = Value; }; +struct OFintegral_constant { typedef OFintegral_constant type; static const T value = Value; }; template const T OFintegral_constant::value; diff --git a/ofstd/include/dcmtk/ofstd/oftuple.h b/ofstd/include/dcmtk/ofstd/oftuple.h index 40009934..9718b53f 100644 --- a/ofstd/include/dcmtk/ofstd/oftuple.h +++ b/ofstd/include/dcmtk/ofstd/oftuple.h @@ -41,6 +41,9 @@ using OFtuple = std::tuple; #elif !defined(DOXYGEN) // fallback implementations #include +#include "dcmtk/ofstd/ofdiag.h" +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_MISMATCHED_TAGS // Implementation of OFignore: struct OFignore_t // that can be constructed and assigned to anything @@ -297,8 +300,7 @@ template<> struct OFtuple_content<> { OFtuple_content() {} - template - OFtuple_content(const X&) {} + OFtuple_content(va_list*) {} template void assign(const X&) {} template @@ -369,6 +371,7 @@ OFtuple<> OFtie(); // implementation / overload for the maximum number // of elements currently supported. #include "dcmtk/ofstd/variadic/tuple.h" +#include DCMTK_DIAGNOSTIC_POP #else // NOT C++11 && NOT DOXYGEN /** A class template that implements generic tuples. diff --git a/ofstd/include/dcmtk/ofstd/ofutil.h b/ofstd/include/dcmtk/ofstd/ofutil.h index 0dd87342..db7f71f0 100644 --- a/ofstd/include/dcmtk/ofstd/ofutil.h +++ b/ofstd/include/dcmtk/ofstd/ofutil.h @@ -36,11 +36,23 @@ #ifdef DCMTK_USE_CXX11_STL #include +#include #define OFmove std::move #define OFswap std::swap -#define OFget std::get #define OFMake_pair std::make_pair +template +constexpr auto OFget( T&& t ) -> decltype( std::get( std::forward( t ) ) ) +{ + return std::get( std::forward( t ) ); +} + +template +constexpr auto OFget( T&& t ) -> decltype( std::get( std::forward( t ) ) ) +{ + return std::get( std::forward( t ) ); +} + template using OFPair = std::pair; @@ -525,4 +537,343 @@ const typename OFtuple_element::type& OFget( const Tuple& tuple ); #endif // NOT C++11 +#ifndef DOXYGEN + +// OFin_place hacks, look at the doxygen documentation instead if +// you know what's good for you! +class DCMTK_OFSTD_EXPORT OFin_place_tag { OFin_place_tag(); }; +typedef OFin_place_tag(&OFin_place_t)(); +#define OFin_place_type_t(T) OFin_place_tag(&)(T&) +#define OFin_place_index_t(I) OFin_place_tag(&)(OFintegral_constant&) +DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place(); +template +OFin_place_tag OFin_place(T&) { return OFin_place(); } +template +OFin_place_tag OFin_place(OFintegral_constant&) { return OFin_place(); } + +#else // NOT DOXYGEN + +/** @defgroup OFin_place_helpers_brief + * @details Tools for in-place construction of objects, e.g. certain OFvariant alternatives. + * @defgroup OFin_place_helpers Tools for in-place construction + * @details + * #include "dcmtk/ofstd/ofutil.h"

+ * @copydoc OFin_place_helpers_brief + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *

Type Definitions

typedef unspecifiedOFin_place_t
A type for tagging an in-place constructor as such. More...
template<typename T>
typedef unspecifiedOFin_place_type_t(T)
A type for tagging an in-place constructor for a certain type as such. More...
template<size_t I>
typedef unspecifiedOFin_place_index_t(I)
A type for tagging an in-place constructor based on a certain index as such. More...
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *

Global Constants

OFin_place_tOFin_place
+ * A constant of type OFin_place_t that may be used for in-place construction. + * More... + *
template<typename T>
OFin_place_type_t(T)OFin_place<T>
+ * A constant of type OFin_place_type_t(T) that may be used for in-place construction. + * More... + *
template<size_t I>
OFin_place_index_t(I)OFin_place<I>
+ * A constant of type OFin_place_index_t(I) that may be used for in-place construction. + * More... + *
+ *

Type Definition Documentation

+ * @anchor OFin_place_t + *
+ *
+ *
+ * typedef unspecified OFin_place_t + *
+ *
+ *
+ *
A type for tagging an in-place constructor as such.
+ *
+ * Usage Example:
+ * @code{.cpp} + * template + * class Wrapper + * { + * public: + * // Will copy construct the wrapped value from a T. + * Wrapper( const T& t ); + * + * // Will in-place construct the value from the given arguments, + * // calling T( arguments... ) internally, without unnecessary + * // copies. + * template + * Wrapper( OFin_place_t, Arguments... arguments ); + * + * private: + * // ... wrapper implementation ... + * }; + * @endcode + *
+ *
+ * @anchor OFin_place_type_t + *
+ *
+ *
template
+ *
+ * typedef unspecified OFin_place_type_t(T) + *
+ *
+ *
+ *
A type for tagging an in-place constructor for a certain type as such. + *
+ *
+ *
Template Parameters
+ *
T the type this in-pace constructor handles, i.e. the type that will be constructed.
+ *
+ * @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_type_t is implemented + * using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union + * { + * public: + * // Will copy construct the wrapped value as an A from a. + * Union( const A& a ); + * + * // Will copy construct the wrapped value as a B from b. + * Union( const B& b ); + * + * // Will in-place construct the value as an A from the given + * // arguments, calling A( arguments... ) internally, without + * // unnecessary copies. + * template + * Union( OFin_place_type_t(A), Arguments... arguments ); + * + * // Will in-place construct the value as a B from the given + * // arguments, calling B( arguments... ) internally, without + * // unnecessary copies. + * template + * Union( OFin_place_type_t(B), Arguments... arguments ); + * + * private: + * // ... union implementation ... + * }; + * @endcode + *
+ *
+ * @anchor OFin_place_index_t + *
+ *
+ *
template
+ *
+ * typedef unspecified OFin_place_index_t(I) + *
+ *
+ *
+ *
A type for tagging an in-place constructor for a certain index as such.
+ *
+ *
Template Parameters
+ *
+ * I the index this in-pace constructor handles, i.e. the zero + * based index of the type that will be constructed. + *
+ *
+ * @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_index_t is implemented + * using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union + * { + * public: + * // Will copy construct the wrapped value as an A from a. + * Union( const A& a ); + * + * // Will copy construct the wrapped value as a B from b. + * Union( const B& b ); + * + * // Will in-place construct the value as an A from the given + * // arguments, calling A( arguments... ) internally, without + * // unnecessary copies. + * // This will even work if A and B refer to the same type. + * template + * Union( OFin_place_index_t(0), Arguments... arguments ); + * + * // Will in-place construct the value as a B from the given + * // arguments, calling B( arguments... ) internally, without + * // unnecessary copies. + * // This will even work if A and B refer to the same type. + * template + * Union( OFin_place_index_t(1), Arguments... arguments ); + * + * private: + * // ... union implementation ... + * }; + * @endcode + *
+ *
+ *

Global Constant Documentation

+ * @anchor OFin_place_generic + *
+ *
+ *
+ * OFin_place_t OFin_place + *
+ *
+ *
+ *
A constant of type OFin_place_t that may be used for in-place construction.
+ * @remarks OFin_place is actually an overloaded function, but instead of calling it + * (which one should never do), its address is used as a tag, since the type of + * its address differs depending on which overload and template parameters are used. + * See http://en.cppreference.com/w/cpp/utility/in_place for more information. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Wrapper; // see OFin_place_t example + * // ... + * // will construct an OFString and then copy construct the value in the wrapper + * Wrapper( "Hello World" ); + * // will in-place construct the value in the wrapper + * Wrapper( OFin_place, "Hello World" ); + * // this also works with multiple arguments: + * // will take only the fist five characters of the const char* + * Wrapper( OFin_place, "Hello World", 5 ); + * @endcode + *
+ *
+ * @anchor OFin_place_type + *
+ *
+ *
template
+ *
+ * OFin_place_type_t(T) OFin_place + *
+ *
+ *
+ *
A constant of type OFin_place_type_t(T) that may be used for in-place construction.
+ *
+ *
Template Parameters
+ *
T the type for selecting an in-pace constructor, i.e. the type that will be constructed.
+ *
+ * @remarks OFin_place is actually an overloaded function, but instead of calling it + * (which one should never do), its address is used as a tag, since the type of + * its address differs depending on which overload and template parameters are used. + * See http://en.cppreference.com/w/cpp/utility/in_place for more information. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union; // see OFin_place_type_t example + * // ... + * // will construct an OFString and then copy construct the value inside the union + * Union( OFString( "Hello World" ) ); + * // will in-place construct an OFString value inside the union + * // with only the fist five characters + * Union( OFin_place, "Hello World", 5 ); + * // will construct an integer value inside the union by casting + * // the address of the character array constant to int + * Union( OFin_place, "Hello World" ); + * @endcode + *
+ *
+ * @anchor OFin_place_index + *
+ *
+ *
template
+ *
+ * OFin_place_index_t(I) OFin_place<I> + *
+ *
+ *
+ *
A constant of type OFin_place_index_t(I) that may be used for in-place construction.
+ *
+ *
Template Parameters
+ *
+ * I the index for selecting an in-pace constructor, i.e. the + * zero based index of the type that will be constructed. + *
+ *
+ * @remarks OFin_place is actually an overloaded function, but instead of calling it + * (which one should never do), its address is used as a tag, since the type of + * its address differs depending on which overload and template parameters are used. + * See http://en.cppreference.com/w/cpp/utility/in_place for more information. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union; // see OFin_place_index_t example + * // ... + * // error, cannot determine which constructor shall be used, + * // since both take an int + * Union( 3 ); + * // will in-place construct an int value inside the union + * // tagging it as an A + * Union( OFin_place<0>, 3 ); + * // will in-place construct an int value inside the union + * // tagging it as a B + * Union( OFin_place<1>, 3 ); + * @endcode + *
+ *
+ */ + +#endif // DOXYGEN + #endif // OFUTIL_H diff --git a/ofstd/include/dcmtk/ofstd/ofvriant.h b/ofstd/include/dcmtk/ofstd/ofvriant.h new file mode 100644 index 00000000..d7eb2256 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/ofvriant.h @@ -0,0 +1,740 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: ofstd + * + * Author: Jan Schlamelcher + * + * Purpose: Implementing tagged unions similar to C++17's std::variant. + * + */ + +#ifndef OFVARIANT_H +#define OFVARIANT_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +/** @file + * Declares OFvariant and related functionality. + * @defgroup ofvisit_variant OFvisit – OFvariant + * Apply a visitor to an OFvariant object. + * @see @ref ofget_variant "OFget" – @copybrief ofget_variant + * @defgroup ofget_variant OFget – OFvariant + * Get a pointer to the value stored in an OFvariant holding the selected alternative. + * @see @ref ofvisit_variant "OFvisit" – @copybrief ofvisit_variant + */ + +#ifdef DCMTK_USE_CXX11_STL +#include +#include +#include + +template +class OFvariant_traits +{ +public: + using is_constructible = std::false_type; + static constexpr inline std::size_t alignment() { return 1; } + static constexpr inline std::size_t size() { return 0; } + static void index_of(); +}; + +template +class OFvariant_traits +: OFvariant_traits +{ +public: + using OFvariant_traits::index_of; + + using first_alternative = Alternative0; + + static constexpr inline std::size_t alignment() + { + return alignof(aligned); + } + + static constexpr inline std::size_t size() + { + return sizeof( first_alternative ) > OFvariant_traits::size() + ? + sizeof( first_alternative ) + : + OFvariant_traits::size() + ; + } + + static std::integral_constant index_of( first_alternative ); + +private: + struct aligned { alignas(OFvariant_traits::alignment()) char c; first_alternative a; }; +}; + +template +struct OFvariant_select_index_type {}; + +template +struct OFvariant_select_index_type +{ + using type = typename std::conditional + < + AlternativeCount <= std::numeric_limits::max(), + std::enable_if, + OFvariant_select_index_type + >::type::type; +}; + +template +class OFvariant; + +template +struct OFvariant_alternative; + +template +struct OFvariant_alternative> +: OFvariant_alternative> {}; + +template +struct OFvariant_alternative<0,OFvariant> +{ + using type = Alternative0; +}; + +template +class OFvariant +{ + using traits = OFvariant_traits<0,Alternatives...>; + using index_type = typename OFvariant_select_index_type::type; + template + using index_of = decltype(traits::index_of(std::declval())); + +public: + using variant = OFvariant; + + OFvariant() + : m_Content() + , m_Index( 0 ) + { + new (m_Content) typename traits::first_alternative; + } + + template()> + OFvariant( T&& t ) + : m_Content() + , m_Index( Index ) + { + new (m_Content) typename OFvariant_alternative::type( std::forward( t ) ); + } + + OFvariant( OFvariant& rhs ) + : OFvariant( const_cast( rhs ) ) + { + + } + + OFvariant( const OFvariant& rhs ) + : m_Content() + , m_Index( rhs.index() ) + { + copy_construct( rhs ); + } + + OFvariant( OFvariant&& rhs ) + : m_Content() + , m_Index( rhs.index() ) + { + move_construct( std::move( rhs ) ); + } + + template()> + OFvariant& operator=( T&& t ) + { + if( m_Index != Index ) + { + destroy(); + m_Index = Index; + new (m_Content) typename OFvariant_alternative::type( std::forward( t ) ); + } + else + { + *reinterpret_cast::type*>( m_Content ) = std::forward( t ); + } + return *this; + } + + OFvariant& operator=( OFvariant& rhs ) + { + return *this = const_cast( rhs ); + } + + OFvariant& operator=( const OFvariant& rhs ) + { + if( this != &rhs ) + { + if( m_Index != rhs.m_Index ) + { + destroy(); + m_Index = rhs.m_Index; + copy_construct( rhs ); + } + else + { + using functor = void(OFvariant::*)(const OFvariant&); + static const functor assignment[] = + { + &OFvariant::template copy_assign_alternative... + }; + (this->*assignment[m_Index])( rhs ); + } + } + return *this; + } + + OFvariant& operator=( OFvariant&& rhs ) + { + if( this != &rhs ) + { + if( m_Index != rhs.m_Index ) + { + destroy(); + m_Index = rhs.m_Index; + move_construct( std::move( rhs ) ); + } + else + { + using functor = void(OFvariant::*)(OFvariant&&); + static const functor assignment[] = + { + &OFvariant::template move_assign_alternative... + }; + (this->*assignment[m_Index])( std::move( rhs ) ); + } + } + return *this; + } + + ~OFvariant() + { + destroy(); + } + + std::size_t index() const + { + return m_Index; + } + +private: + template + friend T* OFget( OFvariant* ); + template + friend const T* OFget( const OFvariant* ); + template + friend ReturnType OFvisit( FN&&, OFvariant& ); + template + friend ReturnType OFvisit( FN&&, const OFvariant& ); + + template + void copy_construct_alternative( const OFvariant& rhs ) + { + new (m_Content) Alternative( *reinterpret_cast( rhs.m_Content ) ); + } + + template + void move_construct_alternative( OFvariant&& rhs ) + { + new (m_Content) Alternative( std::move( *reinterpret_cast( rhs.m_Content ) ) ); + } + + template + void copy_assign_alternative( const OFvariant& rhs ) + { + *reinterpret_cast( m_Content ) = *reinterpret_cast( rhs.m_Content ); + } + + template + void move_assign_alternative( OFvariant&& rhs ) + { + *reinterpret_cast( m_Content ) = std::move( *reinterpret_cast( rhs.m_Content ) ); + } + + template + void destructor() + { + reinterpret_cast( m_Content )->~Alternative(); + } + + template + ReturnType visit_alternative( FN&& fn ) + { + return fn( *reinterpret_cast( m_Content ) ); + } + + template + ReturnType const_visit_alternative( FN&& fn ) const + { + return fn( *reinterpret_cast( m_Content ) ); + } + + void copy_construct( const OFvariant& rhs ) + { + using functor = void(OFvariant::*)(const OFvariant&); + static const functor constructor[] = + { + &OFvariant::template copy_construct_alternative... + }; + assert( m_Index < sizeof...(Alternatives) ); + (this->*constructor[m_Index])( rhs ); + } + + void move_construct( OFvariant&& rhs ) + { + using functor = void(OFvariant::*)(OFvariant&&); + static const functor constructor[] = + { + &OFvariant::template move_construct_alternative... + }; + assert( m_Index < sizeof...(Alternatives) ); + (this->*constructor[m_Index])( std::move( rhs ) ); + } + + void destroy() + { + using functor = void(OFvariant::*)(); + static const functor destructor[] = + { + &OFvariant::template destructor... + }; + assert( m_Index < sizeof...(Alternatives) ); + (this->*destructor[m_Index])(); + } + + alignas(traits::alignment()) std::uint8_t m_Content[traits::size()]; + index_type m_Index; +}; + +template +struct OFvariant_index_of_type +: OFvariant_index_of_type {}; + +template +struct OFvariant_index_of_type +: std::integral_constant {}; + +template +constexpr bool OFholds_alternative( const OFvariant& v ) +{ + return v.index() == OFvariant_index_of_type<0,T,Alternatives...>::value; +} + +template +T* OFget( OFvariant* v ) +{ + if( OFholds_alternative( *v ) ) + return reinterpret_cast( v->m_Content ); + return nullptr; +} + +template +const T* OFget( const OFvariant* v ) +{ + if( OFholds_alternative( *v ) ) + return reinterpret_cast( v->m_Content ); + return nullptr; +} + +template +ReturnType OFvisit( FN&& fn, OFvariant& v ) +{ + using functor = ReturnType(OFvariant::*)(FN&&); + static const functor visit[] = + { + &OFvariant::template visit_alternative... + }; + return (v.*visit[v.index()])( std::forward( fn ) ); +} + +template +ReturnType OFvisit( FN&& fn, const OFvariant& v ) +{ + using functor = ReturnType(OFvariant::*)(FN&&) const; + static const functor visit[] = + { + &OFvariant::template const_visit_alternative... + }; + return (v.*visit[v.index()])( std::forward( fn ) ); +} + +#elif !defined(DOXYGEN) // fallback implementation + +// Include the actual implementation (that emulates variadic templates) +#include "dcmtk/ofstd/variadic/variant.h" + +#else // NOT C++11 && NOT DOXYGEN + +/** A class template that represents a type-safe union. + * #include "dcmtk/ofstd/ofvriant.h" for using this class
+ * @headerfile ofvriant.h "dcmtk/ofstd/ofvriant.h" + * @tparam Alternatives a set of types that may be stored in this variant. All types must be (possibly + * cv-qualified) object types. + * @details + * OFvariant is a custom implementation of a subset of C++17's std::variant, + * see http://en.cppreference.com/w/cpp/utility/variant for a description of std::variant. + * An instance of OFvariant at any given time holds a value of one of its alternative types. + * As with unions, if a variant holds a value of some object type T, the object representation of T is + * allocated directly within the object representation of the variant itself if possible. + * @note If no suitable alignment specifiers were available for the target platform, OFvariant will + * use a fallback implementation that stores the alternative on the heap – as opposite to std::variant. + * @details + * The preferred way to access an OFvariant object is visitation utilizing @ref ofvisit_variant "OFvisit". + * If a certain alternative is expected to be held by the variant, @ref ofget_variant "OFget" may be used to + * access it directly. + * @see @ref ofvisit_variant "OFvisit" – @copybrief ofvisit_variant + * @see @ref ofget_variant "OFget" – @copybrief ofget_variant + * @see OFmonostate – @copybrief OFmonostate + * @see @ref OFin_place_helpers "OFin_place" – @copydoc OFin_place_helpers_brief + */ +template +class OFvariant +{ +public: + + /** Constructs a variant holding a default constructed value of the first alternative. + * @pre The first alternative must be default constructible. + * @see OFmonostate – @copybrief OFmonostate + */ + OFvariant(); + + /** Copy constructs a variant holding a copy of the value rhs holds. + * @param rhs a const reference to another object of equal type. + * @pre All alternatives must be copy constructible. + */ + OFvariant( const OFvariant& rhs ); + + /** Move constructs a variant by moving the value rhs holds. + * @param rhs an rvalue reference to another object of equal type. + * @pre All alternatives must be move constructible. + * @note This constructor is currently only available if C++11 support was enabled. + */ + OFvariant( OFvariant&& rhs ); + + /** Constructs a variant holding the alternative that most closely matches the given + * argument. + * @tparam T the type of the argument, will be deduced automatically. + * @param t an object of type `T` that will be converted to one of the alternatives. + * @precondition There must be at least one alternative that can be constructed from + * the given parameter `t` and there must be exactly one such alternative that + * takes precedence over the others. + * @attention t will be perfectly forwarded if C++11 support is available, i.e. the + * alternative may be move constructed from `t` if possible. Support for perfect + * forwarding is NOT available without C++11 support, therefore the alternative + * will be copy constructed in this case, this means: the selected alternative + * must be copy constructible if pre C++11 compilers shall be supported. + * @details + *

Usage Example:

+ * @code{.cpp} + * OFvariant( 3 ); // OK + * OFvariant( 3 ); // ill formed, both alternatives take equal precedence + * OFvariant( "abc" ); // OK, but chooses OFBool! + * @endcode + */ + template + OFvariant( T t ); + + /** Destroys the value that the variant currently holds. + */ + ~OFvariant(); + + /** Copy assigns the value rhs holds to *this. + * @param rhs a const reference to another object of equal type. + * @pre all alternatives must be copy constructible and copy assignable. + * @return `*this` + * @post + * @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs` + * is copy assigned to the value contained in `*this`. + * @li if `*this` and `rhs` hold different alternatives, the value contained in `*this` + * is destroyed and a new one is copy constructed from the value contained in `rhs`. + */ + OFvariant& operator=( const OFvariant& rhs ); + + /** Move assigns the value rhs holds to *this. + * @param rhs an rvalue reference to another object of equal type. + * @pre all alternatives must be move constructible and move assignable. + * @return `*this` + * @post + * @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs` + * is move assigned to the value contained in `*this`. + * @li if `*this` and `rhs` hold different alternatives, the value contained in `*this` + * is destroyed and a new one is move constructed from the value contained in `rhs`. + * @note This constructor is currently only available if C++11 support was enabled. + */ + OFvariant& operator=( OFvariant&& rhs ); + + /** Converts the given argument to one of the alternatives and assigns it to *this. + * @tparam T the type of the argument, will be deduced automatically. + * @param t an object of type `T` that will be converted to one of the alternatives + * for assignment. + * @return `*this` + * @pre There must be at least one alternative that can be constructed from + * the given parameter `t` and there must be exactly one such alternative that + * takes precedence over the others. + * @attention `t` will be perfectly forwarded if C++11 support is available, i.e. the + * alternative may be move constructed from t if possible. Support for perfect + * forwarding is NOT available without C++11 support, therefore the alternative + * will be copy constructed in this case, this means: the selected alternative + * must be copy constructible if pre C++11 compilers shall be supported. + * @details + *

Usage Example:

+ * @code{.cpp} + * OFvariant v1; + * v1 = 3 // OK + * OFvariant v2; + * v2 = 3 // ill formed, both alternatives take equal precedence + * OFvariant v3; + * v3 = "abc"; // OK, but chooses OFBool! + * @endcode + */ + template + OFvariant& operator=( T t ); + + /** Get the index of alternative that is currently being held. + * @return the zero based index of that alternative that is currently being held by + * `*this`, i.e. `0` for the first alternative, `1` for the second, etc. + */ + size_t index() const; +}; + +/** Try to get a pointer to the given alternative from an OFvariant object. + * @ingroup ofget_variant + * @relates OFvariant + * @tparam Alternative the chosen alternative that shall be accessed. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param v a reference to an OFvariant object potentially holding `Alternative`. + * @return the address of the contained value of type `Alternative` if such a value is + * contained. `OFnullptr` otherwise. + * @details + *

Usage Example:

+ * @code{.cpp} + * OFvariant v; + * // ... some value is assigned to v ... + * if( int* pI = OFget( v ) ) + * { + * COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl; + * *pI = "27"; // now, let's directly assign something else + * } + * @endcode + */ +template +Alternative* OFget( OFvariant* v ); + +/** Try to get a pointer to the given alternative from an OFvariant object. + * @ingroup ofget_variant + * @relates OFvariant + * @tparam Alternative the chosen alternative that shall be accessed. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param v a const reference to an OFvariant object potentially holding `Alternative`. + * @return the address of the contained value of type `const Alternative` if such a value is + * contained. `OFnullptr` otherwise. + * @details + *

Usage Example:

+ * @code{.cpp} + * const OFvariant v( ... some value is assigned to v ... ); + * if( int* pI = OFget( v ) ) // error, the result is const! + * if( const int* pI = OFget( v ) ) // OK + * { + * COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl; + * *pI = "27"; // Error, *pI is const! + * } + * @endcode + */ +template +const Alternative* OFget( const OFvariant* v ); + +/** Applies the given visitor to the given OFvariant object. + * @ingroup ofvisit_variant + * @relates OFvariant + * @details@anchor ofget_alternative_const_variant + * @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the + * result type automatically in a portable way, therefore, it must be explicitly given by + * the caller. + * @tparam Visitor the type of the visitor, will be deduced automatically. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param visitor the visitor that will be invoked with the alternative currently being + * held by the given OFvariant object. + * @param v a reference to an OFvariant object that is going to be visited. + * @return Let `CurrentAlternative` be the alternative that v currently holds: the result + * of `visitor( *OFget( &v ) )` will be converted to `Result` and then + * returned. + * @pre all possible results must be convertible to `Result`. + * @pre `visitor` must be able to take all possible alternatives. + * @note If C++11 support is available, the visitor will be forwarded using perfect forwarding. + * If not, the visitor may be copy constructed at least once, therefore, the visitor needs + * to be copy constructible when pre C++11 compilers are targeted. + * @details + *

Usage Example:

+ * @code{.cpp} + * struct PowerVisitor + * { + * template + * Number operator()( Number number ) + * { + * return number * number; + * } + * }; + * struct PrintVisitor + * { + * template + * void operator()( Number number ) + * { + * COUT << number << OFendl; + * } + * }; + * struct AssignVisitor + * { + * template + * void operator()( Number& number ) + * { + * number *= number; + * } + * }; + * // ... + * OFvariant v( 3.14 ); + * OFvariant result = OFvisit >( PowerVisitor(), v ); + * switch( result.index() ) + * { + * case 0: COUT << "int "; break; + * case 1: COUT << "float "; break; + * case 2: COUT << "double "; break; + * } + * OFvisit( PrintVisitor(), result ); + * COUT << "double " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, every alternative fits inside double + * COUT << "int " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, value will be truncated! + * COUT << "string " << OFvisit( PowerVisitor(), v ) << OFendl; // ERROR! + * OFvisit( AssignVisitor(), v ); + * OFvisit( PrintVisitor(), v ); + * @endcode + * Output (if the error was removed): + * @verbatim + double 9.8596 + double 9.8596 + int 9 + 9.8596 + @endverbatim + */ +template +Result OFvisit( Visitor visitor, OFvariant& v ); + +/** Applies the given visitor to the given OFvariant object. + * @ingroup ofvisit_variant + * @relates OFvariant + * @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the + * result type automatically in a portable way, therefore, it must be explicitly given by + * the caller. + * @tparam Visitor the type of the visitor, will be deduced automatically. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param visitor the visitor that will be invoked with the alternative currently being + * held by the given OFvariant object. + * @param v a const reference to an OFvariant object that is going to be visited. + * @return Let `CurrentAlternative` be the alternative that v currently holds: the result + * of `visitor( *OFget( &v ) )` will be converted to `Result` and then + * returned. + * @pre all possible results must be convertible to `Result`. + * @pre `visitor` must be able to take all possible alternatives. + * @note If C++11 support is available, the visitor will be forwarded using perfect forwarding. + * If not, the visitor may be copy constructed at least once, therefore, the visitor needs + * to be copy constructible when pre C++11 compilers are targeted. + * @details + *

Usage Example:

+ * @code{.cpp} + * struct PowerVisitor + * { + * template + * Number operator()( Number number ) + * { + * return number * number; + * } + * }; + * struct PrintVisitor + * { + * template + * void operator()( Number number ) + * { + * COUT << number << OFendl; + * } + * }; + * struct AssignVisitor + * { + * template + * void operator()( Number& number ) + * { + * number *= number; + * } + * }; + * // ... + * const OFvariant v( 3.14 ); + * OFvariant result = OFvisit >( PowerVisitor(), v ); + * switch( result.index() ) + * { + * case 0: COUT << "int "; break; + * case 1: COUT << "float "; break; + * case 2: COUT << "double "; break; + * } + * OFvisit( PrintVisitor(), result ); + * COUT << "double " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, every alternative fits inside double + * COUT << "int " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, value will be truncated! + * COUT << "string " << OFvisit( PowerVisitor(), v ) << OFendl; // ERROR! + * OFvisit( AssignVisitor(), v ); // ERROR, v is const! + * OFvisit( PrintVisitor(), v ); + * @endcode + * Output (if the errors were removed): + * @verbatim + double 9.8596 + double 9.8596 + int 9 + 3.14 + @endverbatim + */ +template +Result OFvisit( Visitor visitor, const OFvariant& v ); + +#endif // DOXYGEN + +/** A helper type for making OFvariant default constructible. + * @relates OFvariant + * @details + * Use OFmonostate as the first alternative of an OFvariant otherwise holding a non default constructible type as + * the first alternative for making the variant itself default constructible. + * @note Be aware that any visitor applied to such an OFvariant object must also accept OFmonostate as an argument. + * @details + *

Example

+ * @code{.cpp} + * template + * struct NonDefaultConstructible + * { + * NonDefaultConstructible( T t ) : value( t ) {} + * T value; + * }; + * typedef NonDefaultConstructible nint; + * typedef NonDefaultConstructible nfloat; + * // ... + * OFvariant v( 3 ); // OK, but what if we don't know the value yet? + * OFvariant v; // ERROR! + * OFvariant v; // OK + * v = 3; // assign the value when it's known + * @endcode + */ +struct OFmonostate {}; + +#endif // OFVARIANT_H diff --git a/ofstd/include/dcmtk/ofstd/variadic/helpers.h b/ofstd/include/dcmtk/ofstd/variadic/helpers.h new file mode 100644 index 00000000..c8a11c22 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/variadic/helpers.h @@ -0,0 +1,91 @@ +/* +** DO NOT EDIT THIS FILE !!! +** It was generated automatically by: +** +** User: jan +** Host: NBOFFIS99 +** Date: 2016-07-19 19:01:07 +** Prog: /home/jan/Desktop/homes/scripts/make_variadic.sh +** +** Purpose: +** Defining some helper template metafunctions for emulating variadic +** templates. +*/ +#ifndef VARIADIC_HELPERS_H +#define VARIADIC_HELPERS_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftraits.h" +#include "dcmtk/ofstd/ofalign.h" + +// Some macros for being used in non generated code +#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(N) typename N ## 1=OFvariadic_nil,typename N ## 2=OFvariadic_nil,typename N ## 3=OFvariadic_nil,typename N ## 4=OFvariadic_nil,typename N ## 5=OFvariadic_nil,typename N ## 6=OFvariadic_nil,typename N ## 7=OFvariadic_nil,typename N ## 8=OFvariadic_nil,typename N ## 9=OFvariadic_nil,typename N ## 10=OFvariadic_nil,typename N ## 11=OFvariadic_nil,typename N ## 12=OFvariadic_nil,typename N ## 13=OFvariadic_nil,typename N ## 14=OFvariadic_nil,typename N ## 15=OFvariadic_nil,typename N ## 16=OFvariadic_nil,typename N ## 17=OFvariadic_nil,typename N ## 18=OFvariadic_nil,typename N ## 19=OFvariadic_nil,typename N ## 20=OFvariadic_nil,typename N ## 21=OFvariadic_nil,typename N ## 22=OFvariadic_nil,typename N ## 23=OFvariadic_nil,typename N ## 24=OFvariadic_nil,typename N ## 25=OFvariadic_nil,typename N ## 26=OFvariadic_nil,typename N ## 27=OFvariadic_nil,typename N ## 28=OFvariadic_nil,typename N ## 29=OFvariadic_nil,typename N ## 30=OFvariadic_nil,typename N ## 31=OFvariadic_nil,typename N ## 32=OFvariadic_nil,typename N ## 33=OFvariadic_nil,typename N ## 34=OFvariadic_nil,typename N ## 35=OFvariadic_nil,typename N ## 36=OFvariadic_nil,typename N ## 37=OFvariadic_nil,typename N ## 38=OFvariadic_nil,typename N ## 39=OFvariadic_nil,typename N ## 40=OFvariadic_nil,typename N ## 41=OFvariadic_nil,typename N ## 42=OFvariadic_nil,typename N ## 43=OFvariadic_nil,typename N ## 44=OFvariadic_nil,typename N ## 45=OFvariadic_nil,typename N ## 46=OFvariadic_nil,typename N ## 47=OFvariadic_nil,typename N ## 48=OFvariadic_nil,typename N ## 49=OFvariadic_nil +#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK(N) typename N ## 1,typename N ## 2,typename N ## 3,typename N ## 4,typename N ## 5,typename N ## 6,typename N ## 7,typename N ## 8,typename N ## 9,typename N ## 10,typename N ## 11,typename N ## 12,typename N ## 13,typename N ## 14,typename N ## 15,typename N ## 16,typename N ## 17,typename N ## 18,typename N ## 19,typename N ## 20,typename N ## 21,typename N ## 22,typename N ## 23,typename N ## 24,typename N ## 25,typename N ## 26,typename N ## 27,typename N ## 28,typename N ## 29,typename N ## 30,typename N ## 31,typename N ## 32,typename N ## 33,typename N ## 34,typename N ## 35,typename N ## 36,typename N ## 37,typename N ## 38,typename N ## 39,typename N ## 40,typename N ## 41,typename N ## 42,typename N ## 43,typename N ## 44,typename N ## 45,typename N ## 46,typename N ## 47,typename N ## 48,typename N ## 49 +#define OFVARIADIC_TEMPLATE_PARAMETER_PACK(N) N ## 1,N ## 2,N ## 3,N ## 4,N ## 5,N ## 6,N ## 7,N ## 8,N ## 9,N ## 10,N ## 11,N ## 12,N ## 13,N ## 14,N ## 15,N ## 16,N ## 17,N ## 18,N ## 19,N ## 20,N ## 21,N ## 22,N ## 23,N ## 24,N ## 25,N ## 26,N ## 27,N ## 28,N ## 29,N ## 30,N ## 31,N ## 32,N ## 33,N ## 34,N ## 35,N ## 36,N ## 37,N ## 38,N ## 39,N ## 40,N ## 41,N ## 42,N ## 43,N ## 44,N ## 45,N ## 46,N ## 47,N ## 48,N ## 49 + +/** A tag for template parameters to mark them as 'not a template parameter'. + */ +struct OFvariadic_nil; + +template +struct OFvariadic_parameter_pack_sizeof +: OFintegral_constant::value+1> {}; + +template<> +struct OFvariadic_parameter_pack_sizeof<> +: OFintegral_constant {}; + +template +struct OFvariadic_nth_type +: OFvariadic_nth_type {}; + +template +struct OFvariadic_nth_type<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> +{ typedef T0 type; }; + +template +struct OFvariadic_find_type_t +: OFvariadic_find_type_t {}; + +template +struct OFvariadic_find_type_t +: OFintegral_constant {}; + +template +struct OFvariadic_find_type_t +: OFintegral_constant {}; + +template +struct OFvariadic_find_type +: OFintegral_constant::value> {}; + +template class Accumulator,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil> +struct OFfold +: OFfold::type,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {}; + +template class Accumulator,typename T0> +struct OFfold : T0 { typedef T0 type; }; + +template class Accumulator> +struct OFfold {}; + +template +struct OFmax_sizeof +: OFintegral_constant sizeof(R) ? sizeof(L) : sizeof(R))> {}; + +template +struct OFmax_sizeof,R> +: OFintegral_constant sizeof(R) ? L : sizeof(R))> {}; + +#ifdef OFalignof +template +struct OFmax_alignof +: OFintegral_constant OFalignof(R) ? OFalignof(L) : OFalignof(R))> {}; + +template +struct OFmax_alignof,R> +: OFintegral_constant OFalignof(R) ? L : OFalignof(R))> {}; +#endif // OFalignof + +#endif // VARIADIC_HELPERS_H diff --git a/ofstd/include/dcmtk/ofstd/variadic/variant.h b/ofstd/include/dcmtk/ofstd/variadic/variant.h new file mode 100644 index 00000000..affcffd3 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/variadic/variant.h @@ -0,0 +1,436 @@ +/* +** DO NOT EDIT THIS FILE !!! +** It was generated automatically by: +** +** User: jan +** Host: caesar +** Date: 2016-07-14 14:48:02 +** Prog: /home/jan/scripts/make_variadic.sh +** +** Purpose: +** Emulating variadic template parameters support for OFvariant with generated +** code. +*/ +#ifndef VARIADIC_VARIANT_H +#define VARIADIC_VARIANT_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/variadic/helpers.h" +#include "dcmtk/ofstd/ofdiag.h" + +// We hide all this from doxygen, because it would only scare sane people +// (and it is not needed for understanding how to use OFvariant). +#ifndef DOXYGEN + +// Template recursively overload constructor and assignment operator for the +// different alternatives of the variant (used in the template constructor/ +// assignment members). +template +struct OFvariant_overload +: OFvariant_overload +{ + // Let the inherited methods take part in overload resolution + using OFvariant_overload::constructor; + using OFvariant_overload::assignment; + static Uint16 test_accepts( T0 ); + static Uint8 test_accepts( ... ); +#ifdef OFalign + static size_t constructor( void* content, const T0& t0 ) + { + new (content) T0( t0 ); +#else + static size_t constructor( void*& content, const T0& t0 ) + { + content = new T0( t0 ); +#endif + return Index; + } + + static bool assignment( size_t index, void* content, const T0& t0 ) + { + if( index == Index ) + { + *static_cast( content ) = t0; + return true; + } + return false; + } + +// This code is executed at compile-time, the warnings therefore make +// absolutely no sense (only Visual Studio emits them ;-). +// Converting an integer to a boolean value at compile-time won't have any +// performance ramifications and type conversion will be checked elsewhere, +// not when checking if an overload *potentially exists*. +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_IMPLICIT_CONVERSION +#include DCMTK_DIAGNOSTIC_IGNORE_VISUAL_STUDIO_PERFORMANCE_WARNING + template + struct accepts : OFintegral_constant::template accepts::value> {}; +#include DCMTK_DIAGNOSTIC_POP +}; + +// Template recursion end, declares both functions with incompatible +// signatures so that the 'using' statements work but the functions +// do not effectively take part in the overload resolution. +template +struct OFvariant_overload +{ + static void constructor(); + static void assignment(); + template + struct accepts : OFfalse_type {}; +}; + +// Creates a function pointer lookup table to select a function for the +// currently contained alternative based on the stored index. +// This is not really magic, the syntax will hurt your eyes though! +template +class OFvariant_invoke_t +{ +public: + OFvariant_invoke_t() + { + // Template-recursively assign the function pointers to the fitting + // position inside the function pointer array. This will most likely + // be inlined by the compiler (it is tail recursive) and therefore + // not hurt the performance. + init<0>(); + } + + OFTypename Invoker::return_type operator()( size_t index, void* content, const Invoker& invoker = Invoker() ) + { + // Select the fitting function pointer based on the index and call it with + // the given pointer to the current contents. + return (invoker.*m_Alternatives[index])( content ); + } + +private: + + // This is the recursion step for the Init template, it initializes the current + // function pointer and recurses to the Init template for the next index. + template + OFTypename OFenable_if<(Index < OFvariadic_parameter_pack_sizeof::value)>::type init() + { + m_Alternatives[Index] = &Invoker::template invoke::type>; + init(); + } + + // this is the specialization for the base of the recursion, doing nothing for the + // N+1th alternative, effectively stopping the recursion. + template + OFTypename OFenable_if<(Index >= OFvariadic_parameter_pack_sizeof::value)>::type init() + { + + } + + // the actual function pointer array + OFTypename Invoker::return_type (Invoker::*m_Alternatives[OFvariadic_parameter_pack_sizeof::value])(void*) const; +}; + +// A helper template function for initializing and using a function +// pointer lookup table as dispatcher for variant visitation etc. +template +OFTypename Invoker::return_type OFvariant_invoke( size_t index, void* content, const Invoker& invoker = Invoker() ) +{ + // this may be a race condition in older compilers, which is no + // problem since the copied addresses of the functions are always + // the same. + static OFvariant_invoke_t invocation_table; + return invocation_table( index, content, invoker ); +} + +// A functor that does copy construction from another variant +// object. +struct OFvariant_copy_construct_invoker +{ + typedef void return_type; + +#ifdef OFalign + OFvariant_copy_construct_invoker( void* content ) + : m_Content( content ) +#else + OFvariant_copy_construct_invoker( void*& content ) + : m_pContent( content ) +#endif + { + + } + + template + void invoke( void* content ) const + { +#ifdef OFalign + new (m_Content) T( *static_cast( content ) ); +#else + m_pContent = new T( *static_cast( content ) ); +#endif + } + +#ifdef OFalign + void* m_Content; +#else + void*& m_pContent; +#endif +}; + +// A functor that assigns the contents of another variant object +// that contains the same alternative (regarding the type). +struct OFvariant_assign_invoker +{ + typedef void return_type; + + OFvariant_assign_invoker( void* content ) + : m_Content( content ) + { + + } + + template + void invoke( void* rhs ) const + { + *static_cast( m_Content ) = *static_cast( rhs ); + } + + void* m_Content; +}; + +// A functor that destroys the contained object. +struct OFvariant_destroy_invoker +{ + typedef void return_type; + + template + void invoke( void* content ) const + { +#ifdef OFalign + static_cast( content )->~T(); +#else + delete static_cast( content ); +#endif + } +}; + +// A functor that invokes the given functor, seriously! +template +struct OFvariant_visit_invoker +{ + typedef ReturnType return_type; + + OFvariant_visit_invoker( FN& fn ) + : m_Fn( fn ) + { + + } + + template + ReturnType invoke( void* content ) const + { + return m_Fn( *static_cast( content ) ); + } + + FN& m_Fn; +}; + +// The same as above, but for the const case. +template +struct OFvariant_const_visit_invoker +{ + typedef ReturnType return_type; + + OFvariant_const_visit_invoker( FN& fn ) + : m_Fn( fn ) + { + + } + + template + ReturnType invoke( void* content ) const + { + return m_Fn( *static_cast( content ) ); + } + + FN& m_Fn; +}; + +// The actual variant implementation. Don't mess with this, look +// at the doxygen API description instead. +template +class OFvariant +{ +public: + // typedef for old compilers that do not define the type 'OFvariant' in derived classes + typedef OFvariant variant; + + OFvariant() +#ifdef OFalign + : m_Content() +#else + : m_pContent( new T0 ) +#endif + , m_Index( 0 ) + { +#ifdef OFalign + new (content()) T0; +#endif + } + + template + OFvariant( const T& t, OFTypename OFenable_if::template accepts::value,int>::type = 0 ) +#ifdef OFalign + : m_Content() +#else + : m_pContent() +#endif + , m_Index( OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t ) ) + { + + } + + OFvariant( const OFvariant& rhs ) +#ifdef OFalign + : m_Content() +#else + : m_pContent() +#endif + , m_Index( rhs.index() ) + { + copy_construct( rhs.content() ); + } + + template + OFTypename OFenable_if::template accepts::value,OFvariant>::type& operator=( const T& t ) + { + // Either assign 't' if the contained alternative fits. + if( !OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::assignment( index(), content(), t ) ) + { + // Or destroy the contained alternative and construct + // a new one, based on 't'. + destroy(); + m_Index = OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t ); + } + return *this; + } + + OFvariant& operator=( const OFvariant& rhs ) + { + if( this != &rhs ) + { + // Do 'native' assignment if both variants contain + // the same alternative + if( m_Index == rhs.m_Index ) + { + OFvariant_invoke + ( + m_Index, + rhs.content(), + OFvariant_assign_invoker( content() ) + ); + } + else + { + // Destroy the contents and copy construct a new + // one + destroy(); + m_Index = rhs.m_Index; + copy_construct( rhs.content() ); + } + } + return *this; + } + + ~OFvariant() + { + // Destroy the contained object + destroy(); + } + + size_t index() const + { + // Well, this is easy + return m_Index; + } + +private: + // Friend declarations for visitation and get<>. + template + friend T* OFget( OFvariant* ); + template + friend const T* OFget( const OFvariant* ); + template + friend ReturnType OFvisit( FN, OFvariant& ); + template + friend ReturnType OFvisit( FN, const OFvariant& ); + + // Invoke copy construction + void copy_construct( void* rhs ) + { + OFvariant_invoke + ( + m_Index, + rhs, + OFvariant_copy_construct_invoker( content() ) + ); + } + + // Invoke destructor + void destroy() + { + OFvariant_invoke( m_Index, content() ); + } + +#ifdef OFalign + // Allocate content with alignment. + typedef OFTypename OFfold::type max_sizeof_type; + typedef OFTypename OFfold::type max_alignof_type; + void* content() const { return m_Content; } + mutable OFalign_typename(Uint8[max_sizeof_type::value],max_alignof_type::value) m_Content; +#else + // Allocate content on the heap. + void*& content() const { return OFconst_cast(void*&,m_pContent); } + void* m_pContent; +#endif + size_t m_Index; +}; + +// Actual implementation of get<> by type. +template +T* OFget( OFvariant* v ) +{ + return v->index() == OFvariadic_find_type::value + ? + static_cast( v->content() ) + : + OFnullptr + ; +} + +// The same as above, but for the const case. +template +const T* OFget( const OFvariant* v ) +{ + return v->index() == OFvariadic_find_type::value + ? + static_cast( v->content() ) + : + OFnullptr + ; +} + +// Actual implementation if variant visitation. +template +ReturnType OFvisit( FN fn, OFvariant& v ) +{ + return OFvariant_invoke,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_visit_invoker( fn ) ); +} + +// The same as above, but for the const case. +template +ReturnType OFvisit( FN fn, const OFvariant& v ) +{ + return OFvariant_invoke,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_const_visit_invoker( fn ) ); +} + +#endif // !DOXYGEN + +#endif // VARIADIC_VARIANT_H diff --git a/ofstd/libsrc/CMakeLists.txt b/ofstd/libsrc/CMakeLists.txt index b9aa1bc0..8466f358 100644 --- a/ofstd/libsrc/CMakeLists.txt +++ b/ofstd/libsrc/CMakeLists.txt @@ -1,4 +1,4 @@ # create library from source files DCMTK_ADD_LIBRARY(ofstd ofchrenc ofcmdln ofconapp ofcond ofconfig ofconsol ofcrc32 ofdate ofdatime offile offname oflist ofstd ofstring ofthread oftime oftimer oftempf ofxml ofuuid ofmath) -DCMTK_TARGET_LINK_LIBRARIES(ofstd ${LIBICONV_LIBS} ${THREAD_LIBS} ${WIN32_STD_LIBRARIES}) +DCMTK_TARGET_LINK_LIBRARIES(ofstd ${CHARSET_CONVERSION_LIBS} ${THREAD_LIBS} ${WIN32_STD_LIBRARIES}) diff --git a/ofstd/libsrc/Makefile.dep b/ofstd/libsrc/Makefile.dep index 1241249b..1861af77 100644 --- a/ofstd/libsrc/Makefile.dep +++ b/ofstd/libsrc/Makefile.dep @@ -3,10 +3,16 @@ ofchrenc.o: ofchrenc.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ ../include/dcmtk/ofstd/ofcast.h ../include/dcmtk/ofstd/ofexport.h \ ../include/dcmtk/ofstd/ofstdinc.h ../include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/ofstd/ofstring.h ../include/dcmtk/ofstd/ofstd.h \ - ../include/dcmtk/ofstd/oflist.h ../include/dcmtk/ofstd/oftraits.h \ + ../include/dcmtk/ofstd/ofstring.h ../include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/ofstd/ofutil.h ../include/dcmtk/ofstd/oftraits.h \ + ../include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oflist.h \ ../include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/ofstd/ofdiag.h ../include/dcmtk/ofstd/ofconsol.h \ + ../include/dcmtk/ofstd/ofthread.h ../include/dcmtk/ofstd/diag/push.def \ + ../include/dcmtk/ofstd/diag/shadow.def \ + ../include/dcmtk/ofstd/diag/pop.def ofcmdln.o: ofcmdln.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofcmdln.h ../include/dcmtk/ofstd/oftypes.h \ ../include/dcmtk/ofstd/ofdefine.h ../include/dcmtk/ofstd/ofcast.h \ @@ -17,7 +23,9 @@ ofcmdln.o: ofcmdln.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/ofstd/ofchrenc.h + ../include/dcmtk/ofstd/ofchrenc.h ../include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/ofstd/ofutil.h \ + ../include/dcmtk/ofstd/variadic/tuplefwd.h ofconapp.o: ofconapp.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofconapp.h ../include/dcmtk/ofstd/oftypes.h \ ../include/dcmtk/ofstd/ofdefine.h ../include/dcmtk/ofstd/ofcast.h \ @@ -29,7 +37,9 @@ ofconapp.o: ofconapp.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oftraits.h ../include/dcmtk/ofstd/ofcond.h \ ../include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/ofstd/ofchrenc.h + ../include/dcmtk/ofstd/ofchrenc.h ../include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/ofstd/ofutil.h \ + ../include/dcmtk/ofstd/variadic/tuplefwd.h ofcond.o: ofcond.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oftypes.h \ ../include/dcmtk/ofstd/ofdefine.h ../include/dcmtk/ofstd/ofcast.h \ @@ -102,8 +112,11 @@ ofstd.o: ofstd.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/offile.h ../include/dcmtk/ofstd/oftuple.h \ ../include/dcmtk/ofstd/ofutil.h \ ../include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../include/dcmtk/ofstd/ofdiag.h ../include/dcmtk/ofstd/diag/push.def \ + ../include/dcmtk/ofstd/diag/mmtag.def \ ../include/dcmtk/ofstd/variadic/tuplefrd.h \ - ../include/dcmtk/ofstd/variadic/tuple.h ../include/dcmtk/ofstd/ofmath.h \ + ../include/dcmtk/ofstd/variadic/tuple.h \ + ../include/dcmtk/ofstd/diag/pop.def ../include/dcmtk/ofstd/ofmath.h \ ../include/dcmtk/ofstd/ofnetdb.h ../include/dcmtk/ofstd/ofvector.h \ ../include/dcmtk/ofstd/ofgrp.h ../include/dcmtk/ofstd/ofpwd.h \ ../include/dcmtk/ofstd/ofoption.h ../include/dcmtk/ofstd/ofalign.h diff --git a/ofstd/libsrc/Makefile.in b/ofstd/libsrc/Makefile.in index b000dc9a..fe7705c8 100644 --- a/ofstd/libsrc/Makefile.in +++ b/ofstd/libsrc/Makefile.in @@ -18,6 +18,7 @@ LOCALDEFS = objs = oflist.o ofstring.o ofcmdln.o ofconapp.o offname.o ofconsol.o ofthread.o \ ofcond.o ofstd.o ofcrc32.o ofdate.o oftime.o ofdatime.o oftimer.o \ ofconfig.o ofchrenc.o oftempf.o ofxml.o ofuuid.o offile.o ofmath.o + library = libofstd.$(LIBEXT) diff --git a/ofstd/libsrc/ofchrenc.cc b/ofstd/libsrc/ofchrenc.cc index 26230d47..70b2af3e 100644 --- a/ofstd/libsrc/ofchrenc.cc +++ b/ofstd/libsrc/ofchrenc.cc @@ -13,7 +13,7 @@ * * Module: ofstd * - * Author: Joerg Riesmeier + * Author: Joerg Riesmeier, Jan Schlamelcher * * Purpose: Class for character encoding conversion (Source) * @@ -24,11 +24,8 @@ #include "dcmtk/ofstd/ofchrenc.h" #include "dcmtk/ofstd/ofstd.h" - -#ifdef WITH_LIBICONV -#include -#include -#endif +#include "dcmtk/ofstd/ofdiag.h" +#include "dcmtk/ofstd/ofconsol.h" BEGIN_EXTERN_C #ifdef HAVE_SYS_ERRNO_H @@ -39,19 +36,11 @@ END_EXTERN_C #ifdef HAVE_WINDOWS_H #define WIN32_LEAN_AND_MEAN #include -#endif - - -#define ILLEGAL_DESCRIPTOR OFreinterpret_cast(OFCharacterEncoding::T_Descriptor, -1) -#define CONVERSION_ERROR OFstatic_cast(size_t, -1) -#define CONVERSION_BUFFER_SIZE 1024 - /*-------------* * constants * *-------------*/ -#ifdef HAVE_WINDOWS_H // Windows-specific code page identifiers const unsigned int OFCharacterEncoding::CPC_ANSI = CP_ACP; const unsigned int OFCharacterEncoding::CPC_OEM = CP_OEMCP; @@ -60,167 +49,394 @@ const unsigned int OFCharacterEncoding::CPC_Latin1 = 28591; const unsigned int OFCharacterEncoding::CPC_UTF8 = CP_UTF8; #endif - /*------------------* * implementation * *------------------*/ -OFCharacterEncoding::OFCharacterEncoding() - : LocaleEncoding(), - ConversionDescriptor(ILLEGAL_DESCRIPTOR), - TransliterationMode(OFFalse), - DiscardIllegalSequenceMode(OFFalse) -{ - updateLocaleEncoding(); -} +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION +#if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICU +#include +#include +#define CONVERSION_BUFFER_SIZE 1024 -OFCharacterEncoding::~OFCharacterEncoding() +class OFCharacterEncoding::Implementation { - clear(); -} + public: -void OFCharacterEncoding::clear() -{ - // close conversion descriptor (if needed) - closeDescriptor(ConversionDescriptor); - // reset conversion modes - TransliterationMode = OFFalse; - DiscardIllegalSequenceMode = OFFalse; -} + static Implementation* create(const OFString& fromEncoding, + const OFString& toEncoding, + OFCondition& result) + { + UErrorCode icuResult = U_ZERO_ERROR; + UConverter* sourceConverter = ucnv_open(fromEncoding != "" ? fromEncoding.c_str() : OFnullptr, &icuResult); + if (!U_FAILURE(icuResult)) + { + // set default behavior to AbortTranscodingOnIllegalSequence + ucnv_setToUCallBack(sourceConverter, + UCNV_TO_U_CALLBACK_STOP, + OFnullptr, + OFnullptr, + OFnullptr, + &icuResult); + if (!U_FAILURE(icuResult)) + { + UConverter* targetConverter = ucnv_open(toEncoding != "" ? toEncoding.c_str() : OFnullptr, &icuResult); + if (!U_FAILURE(icuResult)) + { + // set default behavior to AbortTranscodingOnIllegalSequence + ucnv_setFromUCallBack(targetConverter, + UCNV_FROM_U_CALLBACK_STOP, + OFnullptr, + OFnullptr, + OFnullptr, + &icuResult); + if (!U_FAILURE(icuResult)) + { + if (Implementation* pImplementation = new Implementation(sourceConverter, targetConverter)) + { + result = EC_Normal; + return pImplementation; + } + else + { + ucnv_close(targetConverter); + ucnv_close(sourceConverter); + result = EC_MemoryExhausted; + return OFnullptr; + } + } + ucnv_close(targetConverter); + } + } + ucnv_close(sourceConverter); + } + result = makeOFCondition(0, EC_CODE_CannotOpenEncoding, OF_error, + (OFString("Cannot open character encoding, ICU error name: ") + u_errorName(icuResult)).c_str()); + return OFnullptr; + } + static OFString getVersionString() + { + OFString versionStr = "ICU, Version "; + char buf[15]; + // extract major and minor version number + sprintf(buf, "%i.%i.%i", U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM); + versionStr.append(buf); + return versionStr; + } -OFBool OFCharacterEncoding::getTransliterationMode() const -{ - return TransliterationMode; -} + static OFString getLocaleEncoding() + { + // open default encoder and retrieve its name + UErrorCode result = U_ZERO_ERROR; + UConverter* conv = ucnv_open(OFnullptr, &result); + if (U_FAILURE(result)) + return OFString(); + OFString name = ucnv_getName(conv, &result); + ucnv_close(conv); + if (U_FAILURE(result)) + return OFString(); + return name; + } + static OFBool supportsConversionFlags(const unsigned flags) + { + return flags == AbortTranscodingOnIllegalSequence + || flags == DiscardIllegalSequences; + } -OFBool OFCharacterEncoding::getDiscardIllegalSequenceMode() const -{ - return DiscardIllegalSequenceMode; -} + unsigned getConversionFlags() const + { + UConverterFromUCallback flags; + const void* ctx; + ucnv_getFromUCallBack(targetConverter, &flags, &ctx); + if (flags == UCNV_FROM_U_CALLBACK_STOP) + return AbortTranscodingOnIllegalSequence; + if (flags == UCNV_FROM_U_CALLBACK_SKIP) + return DiscardIllegalSequences; + return 0; + } + OFBool setConversionFlags(const unsigned flags) + { + UErrorCode result = U_ZERO_ERROR; + switch (flags) + { + case AbortTranscodingOnIllegalSequence: + ucnv_setFromUCallBack(targetConverter, + UCNV_FROM_U_CALLBACK_STOP, + OFnullptr, + OFnullptr, + OFnullptr, + &result); + if (U_FAILURE(result)) + return OFFalse; + ucnv_setToUCallBack(sourceConverter, + UCNV_TO_U_CALLBACK_STOP, + OFnullptr, + OFnullptr, + OFnullptr, + &result); + return !U_FAILURE(result); + case DiscardIllegalSequences: + ucnv_setFromUCallBack(targetConverter, + UCNV_FROM_U_CALLBACK_SKIP, + OFnullptr, + OFnullptr, + OFnullptr, + &result); + if (U_FAILURE(result)) + return OFFalse; + ucnv_setToUCallBack(sourceConverter, + UCNV_TO_U_CALLBACK_SKIP, + OFnullptr, + OFnullptr, + OFnullptr, + &result); + return !U_FAILURE(result); + default: + return OFFalse; + } + } -OFCondition OFCharacterEncoding::setTransliterationMode(const OFBool mode) -{ -#if defined(WITH_LIBICONV) && _LIBICONV_VERSION >= 0x0108 - TransliterationMode = mode; - return EC_Normal; -#else - // avoid compiler warning on unused variable - (void)mode; - // return with an error because iconvctl() is not supported - return makeOFCondition(0, EC_CODE_CannotControlConverter, OF_error, - "Cannot control character encoding converter: iconvctl() not supported"); -#endif -} + OFCondition convert(OFString& target, + const char* from, + const size_t length) + { + // if the input string is empty or NULL, we are done + if (!from || !length) + return EC_Normal; + UErrorCode result = U_ZERO_ERROR; + char targetBuffer[CONVERSION_BUFFER_SIZE]; + UChar pivotBuffer[CONVERSION_BUFFER_SIZE]; + char* pTargetBuffer = targetBuffer; + UChar* pivotSource = pivotBuffer; + UChar* pivotTarget = pivotBuffer; + const char* const end = from + length; + // initialize conversion and convert the first number of chars + ucnv_convertEx( + targetConverter, + sourceConverter, + &pTargetBuffer, + targetBuffer + CONVERSION_BUFFER_SIZE, + &from, + end, + pivotBuffer, + &pivotSource, + &pivotTarget, + pivotBuffer + CONVERSION_BUFFER_SIZE, + OFTrue, // initialize conversion = yes + OFTrue, + &result + ); + // resume conversion as long as chars are left + while (result == U_BUFFER_OVERFLOW_ERROR) + { + target.append(targetBuffer, pTargetBuffer - targetBuffer); + pTargetBuffer = targetBuffer; + result = U_ZERO_ERROR; + ucnv_convertEx( + targetConverter, + sourceConverter, + &pTargetBuffer, + targetBuffer + CONVERSION_BUFFER_SIZE, + &from, + end, + pivotBuffer, + &pivotSource, + &pivotTarget, + pivotBuffer + CONVERSION_BUFFER_SIZE, + OFFalse, // initialize conversion = no + OFTrue, + &result + ); + } + if (U_FAILURE(result)) + return makeOFCondition(0, EC_CODE_CannotConvertEncoding, OF_error, + (OFString("Cannot convert character encoding, ICU error name: ") + u_errorName(result)).c_str()); + target.append(targetBuffer, pTargetBuffer - targetBuffer); + return EC_Normal; + } + ~Implementation() + { + ucnv_close(sourceConverter); + ucnv_close(targetConverter); + } -OFCondition OFCharacterEncoding::setDiscardIllegalSequenceMode(const OFBool mode) -{ -#if defined(WITH_LIBICONV) && _LIBICONV_VERSION >= 0x0108 - DiscardIllegalSequenceMode = mode; - return EC_Normal; -#else - // avoid compiler warning on unused variable - (void)mode; - // return with an error because iconvctl() is not supported - return makeOFCondition(0, EC_CODE_CannotControlConverter, OF_error, - "Cannot control character encoding converter: iconvctl() not supported"); -#endif -} + private: +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_SHADOW + Implementation(UConverter* sourceConverter, + UConverter* targetConverter) + : sourceConverter(sourceConverter), + targetConverter(targetConverter) + { -const OFString &OFCharacterEncoding::getLocaleEncoding() const -{ - return LocaleEncoding; -} + } +#include DCMTK_DIAGNOSTIC_POP + UConverter* sourceConverter; + UConverter* targetConverter; +}; -OFCondition OFCharacterEncoding::updateLocaleEncoding() -{ +#elif DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV ||\ + DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_STDLIBC_ICONV + +#include #ifdef WITH_LIBICONV - // determine current locale's character encoding - LocaleEncoding = OFSTRING_GUARD(::locale_charset()); - // basically, the above function should always return a non-empty string - // but older versions of libiconv might return NULL is certain cases - return EC_Normal; -#else - return EC_NoEncodingLibrary; +#include #endif -} +#define ILLEGAL_DESCRIPTOR OFreinterpret_cast(iconv_t, -1) +#define CONVERSION_ERROR OFstatic_cast(size_t, -1) +#define CONVERSION_BUFFER_SIZE 1024 -OFCondition OFCharacterEncoding::selectEncoding(const OFString &fromEncoding, - const OFString &toEncoding) +class OFCharacterEncoding::Implementation { + + public: + + static Implementation* create(const OFString& fromEncoding, + const OFString& toEncoding, + OFCondition& result) + { + iconv_t descriptor = ::iconv_open(toEncoding.c_str(), fromEncoding.c_str()); + if (descriptor == ILLEGAL_DESCRIPTOR) + { + // return an appropriate error message + createErrnoCondition(result, "Cannot open character encoding: ", EC_CODE_CannotOpenEncoding); + return OFnullptr; + } + if (Implementation* pImplementation = new Implementation(descriptor)) + { + result = EC_Normal; + return pImplementation; + } + result = EC_MemoryExhausted; + return OFnullptr; + } + + static OFString getVersionString() + { #ifdef WITH_LIBICONV - // first, close the current conversion descriptor (if needed) - closeDescriptor(ConversionDescriptor); - // then, try to open a new descriptor for the specified character encodings - return openDescriptor(ConversionDescriptor, fromEncoding.c_str(), toEncoding.c_str()); + OFString versionStr = "LIBICONV, Version "; + char buf[10]; + // extract major and minor version number + sprintf(buf, "%i.%i", (_LIBICONV_VERSION >> 8), (_LIBICONV_VERSION & 0xff)); + versionStr.append(buf); + return versionStr; +#elif defined(__GLIBC__) + OFOStringStream oss; + oss << "GNU C library (iconv), version " + << __GLIBC__ << '.' + << __GLIBC_MINOR__; + OFSTRINGSTREAM_GETOFSTRING(oss, version); + return version; #else - // avoid compiler warning on unused variables - (void)fromEncoding; - (void)toEncoding; - return EC_NoEncodingLibrary; + return "Unknown C library (iconv)"; #endif -} - - -OFCondition OFCharacterEncoding::convertString(const OFString &fromString, - OFString &toString, - const OFBool clearMode) -{ - // call the real method converting the given string - return convertString(ConversionDescriptor, fromString.c_str(), fromString.length(), toString, clearMode); -} + } + static OFString getLocaleEncoding() + { +#ifdef WITH_LIBICONV + // basically, the function below should always return a non-empty string + // but older versions of libiconv might return NULL in certain cases + return OFSTRING_GUARD(::locale_charset()); +#else + return OFString(); +#endif + } -OFCondition OFCharacterEncoding::convertString(const char *fromString, - const size_t fromLength, - OFString &toString, - const OFBool clearMode) -{ - // call the real method converting the given string - return convertString(ConversionDescriptor, fromString, fromLength, toString, clearMode); -} + static OFBool supportsConversionFlags(const unsigned flags) + { +#if defined(WITH_LIBICONV) && _LIBICONV_VERSION >= 0x0108 + return flags == AbortTranscodingOnIllegalSequence + || flags == DiscardIllegalSequences + || flags == TransliterateIllegalSequences + || flags == (DiscardIllegalSequences | TransliterateIllegalSequences) + ; +#else + // the iconvctl function is implemented only in GNU libiconv and not in other + // iconv implementations. The iconv implementation in the C standard library + // therefore does not support different encoding flags. + return flags == AbortTranscodingOnIllegalSequence; +#endif + } + unsigned getConversionFlags() const + { +#if defined(WITH_LIBICONV) && _LIBICONV_VERSION >= 0x0108 + unsigned result = 0; + int flag; + if (::iconvctl(ConversionDescriptor, ICONV_GET_TRANSLITERATE, &flag)) + return 0; + if (flag) + result |= TransliterateIllegalSequences; + if (::iconvctl(ConversionDescriptor, ICONV_GET_DISCARD_ILSEQ, &flag)) + return 0; + if (flag) + result |= DiscardIllegalSequences; + if (result) + return result; +#endif + return AbortTranscodingOnIllegalSequence; + } -OFCondition OFCharacterEncoding::convertString(T_Descriptor descriptor, - const char *fromString, - const size_t fromLength, - OFString &toString, - const OFBool clearMode) -{ - // first, clear result variable if requested - if (clearMode) - toString.clear(); -#ifdef WITH_LIBICONV - OFCondition status = EC_Normal; - // check whether the given conversion descriptor has been allocated - if (isDescriptorValid(descriptor)) + OFBool setConversionFlags(const unsigned flags) { -#if _LIBICONV_VERSION >= 0x0108 - // enable/disable transliteration (use of similar characters) in the conversion - int translit = (TransliterationMode) ? 1 : 0; - if (::iconvctl(descriptor, ICONV_SET_TRANSLITERATE, &translit) < 0) - { - // if this didn't work, return with an appropriate error message - createErrnoCondition(status, "Cannot control character encoding feature TRANSLITERATE: ", - EC_CODE_CannotControlConverter); - } - // enable/disable discarding of illegal sequences in the conversion - int discard = (DiscardIllegalSequenceMode) ? 1 : 0; - if (::iconvctl(descriptor, ICONV_SET_DISCARD_ILSEQ, &discard) < 0) +#if defined(WITH_LIBICONV) && _LIBICONV_VERSION >= 0x0108 + int flag = 0; + switch (flags) { - // if this didn't work, return with an appropriate error message - createErrnoCondition(status, "Cannot control character encoding feature DISCARD_ILSEQ: ", - EC_CODE_CannotControlConverter); + case AbortTranscodingOnIllegalSequence: + if (::iconvctl(ConversionDescriptor, ICONV_SET_DISCARD_ILSEQ, &flag)) + return OFFalse; + if (::iconvctl(ConversionDescriptor, ICONV_SET_TRANSLITERATE, &flag)) + return OFFalse; + return OFTrue; + case DiscardIllegalSequences: + if (::iconvctl(ConversionDescriptor, ICONV_SET_TRANSLITERATE, &flag)) + return OFFalse; + flag = 1; + if (::iconvctl(ConversionDescriptor, ICONV_SET_DISCARD_ILSEQ, &flag)) + return OFFalse; + return OFTrue; + case TransliterateIllegalSequences: + if (::iconvctl(ConversionDescriptor, ICONV_SET_DISCARD_ILSEQ, &flag)) + return OFFalse; + flag = 1; + if (::iconvctl(ConversionDescriptor, ICONV_SET_TRANSLITERATE, &flag)) + return OFFalse; + return OFTrue; + case (TransliterateIllegalSequences | DiscardIllegalSequences): + flag = 1; + if (::iconvctl(ConversionDescriptor, ICONV_SET_DISCARD_ILSEQ, &flag)) + return OFFalse; + if (::iconvctl(ConversionDescriptor, ICONV_SET_TRANSLITERATE, &flag)) + return OFFalse; + return OFTrue; + default: + return OFFalse; } +#else + // the iconvctl function is implemented only in GNU libiconv and not in other + // iconv implementations. The iconv implementation in the C standard library + // therefore does not support different encoding flags. + return flags == AbortTranscodingOnIllegalSequence; #endif + } + + + OFCondition convert(OFString& toString, + const char* fromString, + const size_t fromLength) + { + OFCondition status = EC_Normal; // if the input string is empty or NULL, we are done if (status.good() && (fromString != NULL) && (fromLength > 0)) { @@ -231,7 +447,7 @@ OFCondition OFCharacterEncoding::convertString(T_Descriptor descriptor, #endif size_t inputLeft = fromLength; // set the conversion descriptor to the initial state - ::iconv(descriptor, NULL, NULL, NULL, NULL); + ::iconv(ConversionDescriptor, NULL, NULL, NULL, NULL); // iterate as long as there are characters to be converted while (inputLeft > 0) { @@ -240,7 +456,7 @@ OFCondition OFCharacterEncoding::convertString(T_Descriptor descriptor, const size_t bufferLength = sizeof(buffer); size_t bufferLeft = bufferLength; // convert the current block of the given string to the selected character encoding - if (::iconv(descriptor, &inputPos, &inputLeft, &bufferPos, &bufferLeft) == CONVERSION_ERROR) + if (::iconv(ConversionDescriptor, &inputPos, &inputLeft, &bufferPos, &bufferLeft) == CONVERSION_ERROR) { // check whether the output buffer was too small for the next converted character // (also make sure that the output buffer has been filled to avoid an endless loop) @@ -256,16 +472,231 @@ OFCondition OFCharacterEncoding::convertString(T_Descriptor descriptor, toString.append(buffer, bufferLength - bufferLeft); } } - } else - status = EC_NoEncodingSelected; - return status; + return status; + } + + ~Implementation() + { + // try to close given descriptor and check whether it worked + if (::iconv_close(ConversionDescriptor) == -1) + { + char errBuf[256]; + CERR << "Cannot close character encoding: " + << OFStandard::strerror(errno, errBuf, sizeof(errBuf)) + << OFendl; + } + } + + private: + +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_SHADOW + Implementation(iconv_t ConversionDescriptor) + : ConversionDescriptor(ConversionDescriptor) + { + + } +#include DCMTK_DIAGNOSTIC_POP + + static void createErrnoCondition(OFCondition &status, + OFString message, + const unsigned short code) + { + char errBuf[256]; + message.append(OFStandard::strerror(errno, errBuf, sizeof(errBuf))); + status = makeOFCondition(0, code, OF_error, message.c_str()); + } + + iconv_t ConversionDescriptor; +}; + +#endif // ICONV + +#else // DCMTK_ENABLE_CHARSET_CONVERSION + +// for suppressing unnecessary warnings +class OFCharacterEncoding::Implementation {}; + +#endif // NOT DCMTK_ENABLE_CHARSET_CONVERSION + + +OFBool OFCharacterEncoding::isLibraryAvailable() +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + return OFTrue; +#else + return OFFalse; +#endif +} + + +OFString OFCharacterEncoding::getLibraryVersionString() +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + return Implementation::getVersionString(); +#else + return ""; +#endif +} + + +size_t OFCharacterEncoding::countCharactersInUTF8String(const OFString &utf8String) +{ + const size_t length = utf8String.length(); + size_t count = 0; + // iterate over all bytes and count start of UTF-8 characters + for (size_t i = 0; i < length; i++) + { + if ((utf8String.at(i) & 0xc0) != 0x80) + count++; + } + return count; +} + +OFString OFCharacterEncoding::getLocaleEncoding() +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + return Implementation::getLocaleEncoding(); +#else + return OFString(); +#endif +} + + +OFBool OFCharacterEncoding::supportsConversionFlags(const unsigned flags) +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + return Implementation::supportsConversionFlags(flags); +#else + return OFFalse; +#endif +} + + +OFCharacterEncoding::OFCharacterEncoding() + : TheImplementation() +{ + +} + + +OFCharacterEncoding::OFCharacterEncoding(const OFCharacterEncoding& rhs) + : TheImplementation(rhs.TheImplementation) +{ + +} + + +OFCharacterEncoding::~OFCharacterEncoding() +{ + +} + + +OFCharacterEncoding& OFCharacterEncoding::operator=(const OFCharacterEncoding& rhs) +{ + TheImplementation = rhs.TheImplementation; + return *this; +} + + +OFCharacterEncoding::operator OFBool() const +{ + return OFstatic_cast(OFBool, TheImplementation); +} + + +OFBool OFCharacterEncoding::operator!() const +{ + return !TheImplementation; +} + + +OFBool OFCharacterEncoding::operator==(const OFCharacterEncoding& rhs) const +{ + return TheImplementation == rhs.TheImplementation; +} + +OFBool OFCharacterEncoding::operator!=(const OFCharacterEncoding& rhs) const +{ + return TheImplementation != rhs.TheImplementation; +} + + +void OFCharacterEncoding::clear() +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + TheImplementation.reset(); +#endif +} + + +unsigned OFCharacterEncoding::getConversionFlags() const +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + if (TheImplementation) + return TheImplementation->getConversionFlags(); +#endif + return 0; +} + + +OFCondition OFCharacterEncoding::setConversionFlags(const unsigned flags) +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + if (TheImplementation) + { + if (TheImplementation->setConversionFlags(flags)) + return EC_Normal; + return makeOFCondition(0, EC_CODE_CannotControlConverter, OF_error, + "Conversion flags not supported by the underlying implementation"); + } + return EC_NoEncodingSelected; +#endif + return EC_NoEncodingLibrary; +} + + +OFCondition OFCharacterEncoding::selectEncoding(const OFString &fromEncoding, + const OFString &toEncoding) +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + OFCondition result; + TheImplementation.reset(Implementation::create(fromEncoding, toEncoding, result)); + return result; +#else + return EC_NoEncodingLibrary; +#endif +} + + +OFCondition OFCharacterEncoding::convertString(const OFString &fromString, + OFString &toString, + const OFBool clearMode) +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + return convertString(fromString.c_str(), fromString.length(), toString, clearMode); +#else + return EC_NoEncodingLibrary; +#endif +} + + +OFCondition OFCharacterEncoding::convertString(const char *fromString, + const size_t fromLength, + OFString &toString, + const OFBool clearMode) +{ +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION + if (TheImplementation) + { + // first, clear result variable if requested + if (clearMode) + toString.clear(); + return TheImplementation->convert(toString, fromString, fromLength); + } + return EC_NoEncodingSelected; #else - // avoid compiler warning on unused variables - (void)descriptor; - (void)fromString; - (void)fromLength; - (void)toString; - (void)clearMode; return EC_NoEncodingLibrary; #endif } @@ -302,8 +733,7 @@ OFCondition OFCharacterEncoding::convertFromWideCharString(const wchar_t *fromSt toString.append(toBuffer, charsConverted); } else { // if conversion failed, create appropriate condition text - createGetLastErrorCondition(status, "Cannot convert character encoding: ", - EC_CODE_CannotConvertEncoding); + createGetLastErrorCondition(status, "Cannot convert character encoding: ", EC_CODE_CannotConvertEncoding); } delete[] toBuffer; } else { @@ -350,8 +780,7 @@ OFCondition OFCharacterEncoding::convertToWideCharString(const char *fromString, if (toLength == 0) { // if conversion failed, create appropriate condition text - createGetLastErrorCondition(status, "Cannot convert character encoding: ", - EC_CODE_CannotConvertEncoding); + createGetLastErrorCondition(status, "Cannot convert character encoding: ", EC_CODE_CannotConvertEncoding); } } else { // output buffer could not be allocated @@ -366,96 +795,6 @@ OFCondition OFCharacterEncoding::convertToWideCharString(const char *fromString, return status; } -#endif // HAVE_WINDOWS_H - - -OFCondition OFCharacterEncoding::openDescriptor(T_Descriptor &descriptor, - const OFString &fromEncoding, - const OFString &toEncoding) -{ -#ifdef WITH_LIBICONV - OFCondition status = EC_Normal; - // try to open a new descriptor for the specified character encodings - descriptor = ::iconv_open(toEncoding.c_str(), fromEncoding.c_str()); - // check whether the conversion descriptor could be allocated - if (!isDescriptorValid(descriptor)) - { - // if not, return with an appropriate error message - createErrnoCondition(status, "Cannot open character encoding: ", - EC_CODE_CannotOpenEncoding); - } - return status; -#else - descriptor = ILLEGAL_DESCRIPTOR; - // avoid compiler warning on unused variables - (void)fromEncoding; - (void)toEncoding; - return EC_NoEncodingLibrary; -#endif -} - - -OFCondition OFCharacterEncoding::closeDescriptor(T_Descriptor &descriptor) -{ -#ifdef WITH_LIBICONV - OFCondition status = EC_Normal; - // check whether the conversion descriptor is valid - if (isDescriptorValid(descriptor)) - { - // try to close given descriptor and check whether it worked - if (::iconv_close(descriptor) == -1) - { - // if not, return with an appropriate error message - createErrnoCondition(status, "Cannot close character encoding: ", - EC_CODE_CannotCloseEncoding); - } - } - // in any case, make the descriptor invalid - descriptor = ILLEGAL_DESCRIPTOR; - return status; -#else - OFCondition status = EC_Normal; - // we cannot use isDescriptorValid() because it always returns OFFalse - if (descriptor != ILLEGAL_DESCRIPTOR) - { - descriptor = ILLEGAL_DESCRIPTOR; - status = EC_NoEncodingLibrary; - } - return status; -#endif -} - - -OFBool OFCharacterEncoding::isDescriptorValid(const T_Descriptor descriptor) -{ -#ifdef WITH_LIBICONV - return (descriptor != ILLEGAL_DESCRIPTOR); -#else - // avoid compiler warning on unused variable - (void)descriptor; - return OFFalse; -#endif -} - - -void OFCharacterEncoding::createErrnoCondition(OFCondition &status, - OFString message, - const unsigned short code) -{ -#ifdef WITH_LIBICONV - char errBuf[256]; - message.append(OFStandard::strerror(errno, errBuf, sizeof(errBuf))); - status = makeOFCondition(0, code, OF_error, message.c_str()); -#else - // avoid compiler warning on unused variables - (void)status; - (void)message; - (void)code; -#endif -} - - -#ifdef HAVE_WINDOWS_H // Windows-specific function void OFCharacterEncoding::createGetLastErrorCondition(OFCondition &status, OFString message, @@ -474,42 +813,3 @@ void OFCharacterEncoding::createGetLastErrorCondition(OFCondition &status, } #endif // HAVE_WINDOWS_H - - -OFBool OFCharacterEncoding::isLibraryAvailable() -{ -#ifdef WITH_LIBICONV - return OFTrue; -#else - return OFFalse; -#endif -} - - -OFString OFCharacterEncoding::getLibraryVersionString() -{ -#ifdef WITH_LIBICONV - OFString versionStr = "LIBICONV, Version "; - char buf[10]; - // extract major and minor version number - sprintf(buf, "%i.%i", (_libiconv_version >> 8), (_libiconv_version & 0xff)); - versionStr.append(buf); - return versionStr; -#else - return ""; -#endif -} - - -size_t OFCharacterEncoding::countCharactersInUTF8String(const OFString &utf8String) -{ - const size_t length = utf8String.length(); - size_t count = 0; - // iterate over all bytes and count start of UTF-8 characters - for (size_t i = 0; i < length; i++) - { - if ((utf8String.at(i) & 0xc0) != 0x80) - count++; - } - return count; -} diff --git a/ofstd/libsrc/ofconapp.cc b/ofstd/libsrc/ofconapp.cc index 3444f08d..18ed53c1 100644 --- a/ofstd/libsrc/ofconapp.cc +++ b/ofstd/libsrc/ofconapp.cc @@ -25,7 +25,7 @@ #include "dcmtk/ofstd/ofconapp.h" #include "dcmtk/ofstd/ofstring.h" /* for OFString */ -#ifdef WITH_LIBICONV +#ifdef DCMTK_ENABLE_CHARSET_CONVERSION #include "dcmtk/ofstd/ofchrenc.h" /* for OFCharacterEncoding */ #define INCLUDE_LOCALE @@ -140,13 +140,17 @@ void OFConsoleApplication::printHeader(const OFBool hostInfo, if (hostInfo) { (*output) << OFendl << "Host type: " << CANONICAL_HOST_TYPE << OFendl; -#if defined(WITH_LIBICONV) && defined(HAVE_LOCALE_H) +#if defined(DCMTK_ENABLE_CHARSET_CONVERSION) && defined(HAVE_LOCALE_H) /* determine system's current locale */ const char *currentLocale = setlocale(LC_CTYPE, NULL); if (setlocale(LC_CTYPE, "") != NULL) { - OFCharacterEncoding converter; - (*output) << "Character encoding: " << converter.getLocaleEncoding() << OFendl; + OFString encoding = OFCharacterEncoding::getLocaleEncoding(); + (*output) << "Character encoding: "; + if (!encoding.empty()) + (*output) << encoding << OFendl; + else + (*output) << "system default (unknown)" << OFendl; /* reset locale to the previous setting or to the default (7-bit ASCII) */ if (currentLocale != NULL) setlocale(LC_CTYPE, currentLocale); diff --git a/ofstd/libsrc/ofdatime.cc b/ofstd/libsrc/ofdatime.cc index 8144e2d5..acda440b 100644 --- a/ofstd/libsrc/ofdatime.cc +++ b/ofstd/libsrc/ofdatime.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2002-2011, OFFIS e.V. + * Copyright (C) 2002-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -102,6 +102,32 @@ OFBool OFDateTime::operator!=(const OFDateTime &dateTime) const } +OFBool OFDateTime::operator<(const OFDateTime &dateTime) const +{ + /* note that the "overflow" from one day to another is currently not handled */ + return (Date < dateTime.Date) || ((Date == dateTime.Date) && (Time < dateTime.Time)); +} + + +OFBool OFDateTime::operator<=(const OFDateTime &dateTime) const +{ + /* note that the "overflow" from one day to another is currently not handled */ + return (Date < dateTime.Date) || ((Date == dateTime.Date) && (Time <= dateTime.Time)); +} + + +OFBool OFDateTime::operator>(const OFDateTime &dateTime) const +{ + return (dateTime < *this); +} + + +OFBool OFDateTime::operator>=(const OFDateTime &dateTime) const +{ + return (dateTime <= *this); +} + + void OFDateTime::clear() { Date.clear(); diff --git a/ofstd/libsrc/offname.cc b/ofstd/libsrc/offname.cc index e201e65b..5b6123ed 100644 --- a/ofstd/libsrc/offname.cc +++ b/ofstd/libsrc/offname.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1997-2014, OFFIS e.V. + * Copyright (C) 1997-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -82,7 +82,9 @@ OFBool OFFilenameCreator::makeFilename(unsigned int &seed, const char *dir, cons } if (prefix) filename += prefix; addLongToString(creation_time, filename); - addLongToString(((OFrand_r(seed) << 16) | OFrand_r(seed)), filename); + // on some systems OFrand_r may produce only 16-bit random numbers. + // To be on the safe side, we use two random numbers for the upper and the lower 16 bits. + addLongToString((((OFrand_r(seed) & 0xFFFF) << 16) | (OFrand_r(seed) & 0xFFFF)), filename); if (postfix) filename += postfix; // check if filename exists diff --git a/ofstd/libsrc/ofstd.cc b/ofstd/libsrc/ofstd.cc index d4fb683c..30510d32 100644 --- a/ofstd/libsrc/ofstd.cc +++ b/ofstd/libsrc/ofstd.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2001-2016, OFFIS e.V. + * Copyright (C) 2001-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -2583,6 +2583,15 @@ int OFrand_r(unsigned int &seed) return OFstatic_cast(int, seed); } +void OFStandard::trimString(const char*& pBegin, const char*& pEnd) +{ + assert(pBegin <= pEnd); + while(pBegin != pEnd && (*pBegin == ' ' || !*pBegin)) + ++pBegin; + while(pBegin != pEnd && (*(pEnd-1) == ' ' || !*(pEnd-1))) + --pEnd; +} + #define MAX_NAME 65536 OFStandard::OFHostent OFStandard::getHostByName( const char* name ) @@ -2838,12 +2847,12 @@ OFString OFStandard::getUserName() name, -1, &*buf.begin(), - buf.size(), + OFstatic_cast(int, buf.size()), OFnullptr, OFnullptr ); return &*buf.begin(); -#elif defined(HAVE_CUSERID) +#elif defined(HAVE_CUSERID) && !defined(__CYGWIN__) char buf[L_cuserid]; return cuserid( buf ); #elif defined(HAVE_GETLOGIN) @@ -2880,3 +2889,5 @@ OFString OFStandard::getHostName() return "localhost"; #endif } + +DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place() { return *static_cast(OFnullptr); } diff --git a/ofstd/libsrc/ofthread.cc b/ofstd/libsrc/ofthread.cc index 57125416..c1f87227 100644 --- a/ofstd/libsrc/ofthread.cc +++ b/ofstd/libsrc/ofthread.cc @@ -35,6 +35,13 @@ #include "dcmtk/ofstd/ofstd.h" +#ifdef _DARWIN_C_SOURCE +#define DARWIN_INTERFACE +extern "C" { +#include +} +#endif /* _DARWIN_C_SOURCE */ + #ifdef HAVE_WINDOWS_H #define WINDOWS_INTERFACE @@ -395,15 +402,10 @@ void OFThreadSpecificData::errorstr(OFString& description, int /* code */ ) /* ------------------------------------------------------------------------- */ -/* Mac OS X only permits named Semaphores. The code below compiles on Mac OS X - but does not work. This will be corrected in the next snapshot. For now, the - semaphore code is completely disabled for that OS (it is not used in other - parts of the toolkit so far. - */ -#ifndef _DARWIN_C_SOURCE - #ifdef WINDOWS_INTERFACE const int OFSemaphore::busy = -1; +#elif defined(DARWIN_INTERFACE) + const int OFSemaphore::busy = EAGAIN; #elif defined(POSIX_INTERFACE) const int OFSemaphore::busy = EAGAIN; // Posix returns EAGAIN instead of EBUSY in trywait. #elif defined(SOLARIS_INTERFACE) @@ -413,7 +415,7 @@ void OFThreadSpecificData::errorstr(OFString& description, int /* code */ ) #endif -#if defined(WINDOWS_INTERFACE) || defined(POSIX_INTERFACE) || defined(SOLARIS_INTERFACE) +#if defined(WINDOWS_INTERFACE) || defined(POSIX_INTERFACE) || defined(SOLARIS_INTERFACE) || defined(DARWIN_INTERFACE) OFSemaphore::OFSemaphore(unsigned int numResources) #else OFSemaphore::OFSemaphore(unsigned int /* numResources */ ) @@ -422,6 +424,14 @@ OFSemaphore::OFSemaphore(unsigned int /* numResources */ ) { #ifdef WINDOWS_INTERFACE theSemaphore = OFstatic_cast(void *, CreateSemaphore(NULL, numResources, numResources, NULL)); +#elif defined(DARWIN_INTERFACE) + dispatch_semaphore_t *sem = new dispatch_semaphore_t; + if (sem) + { + *sem = dispatch_semaphore_create(numResources); + if (*sem == NULL) delete sem; + else theSemaphore = sem; + } #elif defined(POSIX_INTERFACE) sem_t *sem = new sem_t; if (sem) @@ -444,6 +454,8 @@ OFSemaphore::~OFSemaphore() { #ifdef WINDOWS_INTERFACE CloseHandle(OFthread_cast(HANDLE, theSemaphore)); +#elif defined(DARWIN_INTERFACE) + delete OFthread_cast(dispatch_semaphore_t *, theSemaphore); #elif defined(POSIX_INTERFACE) if (theSemaphore) sem_destroy(OFthread_cast(sem_t *, theSemaphore)); delete OFthread_cast(sem_t *, theSemaphore); @@ -469,6 +481,12 @@ int OFSemaphore::wait() #ifdef WINDOWS_INTERFACE if (WaitForSingleObject(OFthread_cast(HANDLE, theSemaphore), INFINITE) == WAIT_OBJECT_0) return 0; else return OFstatic_cast(int, GetLastError()); +#elif defined(DARWIN_INTERFACE) + if (theSemaphore) + { + // Always succeeds (returns zero) if the timeout is DISPATCH_TIME_FOREVER. + return dispatch_semaphore_wait(*OFthread_cast(dispatch_semaphore_t *, theSemaphore), DISPATCH_TIME_FOREVER); + } else return EINVAL; #elif defined(POSIX_INTERFACE) if (theSemaphore) { @@ -488,6 +506,14 @@ int OFSemaphore::trywait() if (result == WAIT_OBJECT_0) return 0; else if (result == WAIT_TIMEOUT) return OFSemaphore::busy; else return OFstatic_cast(int, GetLastError()); +#elif defined(DARWIN_INTERFACE) + if (theSemaphore) + { + if (dispatch_semaphore_wait(*OFthread_cast(dispatch_semaphore_t *, theSemaphore), DISPATCH_TIME_NOW) != 0) + return EAGAIN; + else + return 0; + } else return EINVAL; #elif defined(POSIX_INTERFACE) if (theSemaphore) { @@ -504,6 +530,13 @@ int OFSemaphore::post() { #ifdef WINDOWS_INTERFACE if (ReleaseSemaphore(OFthread_cast(HANDLE, theSemaphore), 1, NULL)) return 0; else return OFstatic_cast(int, GetLastError()); +#elif defined(DARWIN_INTERFACE) + if (theSemaphore) + { + // Always succeeds. + dispatch_semaphore_signal(*OFthread_cast(dispatch_semaphore_t *, theSemaphore)); + return 0; + } else return EINVAL; #elif defined(POSIX_INTERFACE) if (theSemaphore) { @@ -516,7 +549,7 @@ int OFSemaphore::post() #endif } -#if defined(WINDOWS_INTERFACE) || defined(POSIX_INTERFACE) || defined(SOLARIS_INTERFACE) +#if defined(WINDOWS_INTERFACE) || defined(POSIX_INTERFACE) || defined(SOLARIS_INTERFACE) || defined(DARWIN_INTERFACE) void OFSemaphore::errorstr(OFString& description, int code) #else void OFSemaphore::errorstr(OFString& description, int /* code */ ) @@ -533,7 +566,7 @@ void OFSemaphore::errorstr(OFString& description, int /* code */ ) if (buf) description = OFreinterpret_cast(const char *, buf); LocalFree(buf); } -#elif defined(POSIX_INTERFACE) || defined(SOLARIS_INTERFACE) +#elif defined(POSIX_INTERFACE) || defined(SOLARIS_INTERFACE) || defined(DARWIN_INTERFACE) char buf[256]; const char *str = OFStandard::strerror(code, buf, sizeof(buf)); if (str) description = str; else description.clear(); @@ -543,8 +576,6 @@ void OFSemaphore::errorstr(OFString& description, int /* code */ ) return; } -#endif // _DARWIN_C_SOURCE - /* ------------------------------------------------------------------------- */ diff --git a/ofstd/tests/CMakeLists.txt b/ofstd/tests/CMakeLists.txt index 88d12e34..add39cc0 100644 --- a/ofstd/tests/CMakeLists.txt +++ b/ofstd/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # declare executables -DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits) +DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits tvariant) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(ofstd_tests ofstd) diff --git a/ofstd/tests/Makefile.dep b/ofstd/tests/Makefile.dep index 8175ae39..f3aa8e87 100644 --- a/ofstd/tests/Makefile.dep +++ b/ofstd/tests/Makefile.dep @@ -31,7 +31,9 @@ tchrenc.o: tchrenc.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/ofstd/ofchrenc.h + ../include/dcmtk/ofstd/ofchrenc.h ../include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/ofstd/ofutil.h \ + ../include/dcmtk/ofstd/variadic/tuplefwd.h tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ @@ -65,7 +67,11 @@ tlimits.o: tlimits.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/ofstd/ofmath.h + ../include/dcmtk/ofstd/ofdiag.h ../include/dcmtk/ofstd/ofmath.h \ + ../include/dcmtk/ofstd/diag/push.def \ + ../include/dcmtk/ofstd/diag/overflow.def \ + ../include/dcmtk/ofstd/diag/cnvrsn.def \ + ../include/dcmtk/ofstd/diag/pop.def tlist.o: tlist.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oflist.h ../include/dcmtk/ofstd/oftypes.h \ ../include/dcmtk/ofstd/ofdefine.h ../include/dcmtk/ofstd/ofcast.h \ @@ -198,7 +204,10 @@ tthread.o: tthread.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofthread.h ../include/dcmtk/ofstd/offile.h \ ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/ofstd/ofdiag.h ../include/dcmtk/ofstd/diag/push.def \ + ../include/dcmtk/ofstd/diag/shadow.def \ + ../include/dcmtk/ofstd/diag/pop.def ttuple.o: ttuple.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ @@ -212,8 +221,11 @@ ttuple.o: ttuple.cc ../../config/include/dcmtk/config/osconfig.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/ofstd/oftuple.h ../include/dcmtk/ofstd/ofutil.h \ ../include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../include/dcmtk/ofstd/ofdiag.h ../include/dcmtk/ofstd/diag/push.def \ + ../include/dcmtk/ofstd/diag/mmtag.def \ ../include/dcmtk/ofstd/variadic/tuplefrd.h \ - ../include/dcmtk/ofstd/variadic/tuple.h + ../include/dcmtk/ofstd/variadic/tuple.h \ + ../include/dcmtk/ofstd/diag/pop.def tuuid.o: tuuid.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ @@ -226,6 +238,25 @@ tuuid.o: tuuid.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/ofstd/ofuuid.h +tvariant.o: tvariant.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \ + ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ + ../include/dcmtk/ofstd/ofcast.h ../include/dcmtk/ofstd/ofexport.h \ + ../include/dcmtk/ofstd/ofstdinc.h ../include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/ofstd/ofcmdln.h ../include/dcmtk/ofstd/oflist.h \ + ../include/dcmtk/ofstd/ofstring.h ../include/dcmtk/ofstd/ofconsol.h \ + ../include/dcmtk/ofstd/ofthread.h ../include/dcmtk/ofstd/offile.h \ + ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \ + ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/ofstd/ofvriant.h \ + ../include/dcmtk/ofstd/variadic/variant.h \ + ../include/dcmtk/ofstd/variadic/helpers.h \ + ../include/dcmtk/ofstd/ofalign.h ../include/dcmtk/ofstd/ofdiag.h \ + ../include/dcmtk/ofstd/diag/push.def \ + ../include/dcmtk/ofstd/diag/cnvrsn.def \ + ../include/dcmtk/ofstd/diag/vsprfw.def \ + ../include/dcmtk/ofstd/diag/pop.def tvec.o: tvec.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ diff --git a/ofstd/tests/Makefile.in b/ofstd/tests/Makefile.in index 77f18a65..001c8fee 100644 --- a/ofstd/tests/Makefile.in +++ b/ofstd/tests/Makefile.in @@ -20,7 +20,7 @@ LOCALTRASH = *.out testfile.\$$\$$\$$ test_objs = tests.o tatof.o tmap.o tvec.o tftoa.o tthread.o tbase64.o \ tstring.o tlist.o tstack.o tofdatim.o tofstd.o tmarkup.o \ tchrenc.o txml.o tuuid.o toffile.o tmem.o toption.o ttuple.o \ - tlimits.o + tlimits.o tvariant.o objs = $(test_objs) progs = tests @@ -28,7 +28,7 @@ progs = tests all: $(progs) tests: $(test_objs) - $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(ICONVLIBS) $(LIBS) + $(CXX) $(CXXFLAGS) $(LIBDIRS) $(LDFLAGS) -o $@ $(test_objs) $(LOCALLIBS) $(CHARCONVLIBS) $(LIBS) check: tests diff --git a/ofstd/tests/tchrenc.cc b/ofstd/tests/tchrenc.cc index 5b9a6a1d..aa44c9ee 100644 --- a/ofstd/tests/tchrenc.cc +++ b/ofstd/tests/tchrenc.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2011-2012, OFFIS e.V. + * Copyright (C) 2011-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -27,17 +27,27 @@ #include "dcmtk/ofstd/ofchrenc.h" +static void checkConversionFlags(OFCharacterEncoding& charEnc, + const unsigned flags) +{ + if (OFCharacterEncoding::supportsConversionFlags(flags)) + { + OFCHECK(charEnc.setConversionFlags(flags).good()); + OFCHECK_EQUAL(charEnc.getConversionFlags(), flags); + } +} + + OFTEST(ofstd_OFCharacterEncoding_1) { // the returned string should never be empty OFCHECK(!OFCharacterEncoding::getLibraryVersionString().empty()); - // check whether libiconv support is available + // check whether character set conversion support is available if (OFCharacterEncoding::isLibraryAvailable()) { OFCharacterEncoding charEnc; OFString resultStr; // first, do some basic validity checks - OFCHECK(!charEnc.getLocaleEncoding().empty()); OFCHECK(charEnc.selectEncoding("ASCII", "UTF-8").good()); OFCHECK(charEnc.convertString("Simple Text", resultStr).good()); OFCHECK_EQUAL(resultStr, "Simple Text"); @@ -57,15 +67,17 @@ OFTEST(ofstd_OFCharacterEncoding_1) OFCHECK(charEnc.selectEncoding("", "ASCII").good()); OFCHECK(charEnc.selectEncoding("ASCII", "").good()); OFCHECK(charEnc.selectEncoding("ASCII", charEnc.getLocaleEncoding()).good()); - charEnc.setTransliterationMode(OFTrue); - charEnc.setDiscardIllegalSequenceMode(OFTrue); + checkConversionFlags(charEnc, OFCharacterEncoding::AbortTranscodingOnIllegalSequence); + checkConversionFlags(charEnc, OFCharacterEncoding::DiscardIllegalSequences); + checkConversionFlags(charEnc, OFCharacterEncoding::TransliterateIllegalSequences); + checkConversionFlags(charEnc, OFCharacterEncoding::TransliterateIllegalSequences + | OFCharacterEncoding::DiscardIllegalSequences); charEnc.clear(); - OFCHECK_EQUAL(charEnc.getTransliterationMode(), OFFalse); - OFCHECK_EQUAL(charEnc.getDiscardIllegalSequenceMode(), OFFalse); OFCHECK(charEnc.convertString("Simple Text", resultStr).bad()); } } + OFTEST(ofstd_OFCharacterEncoding_2) { if (OFCharacterEncoding::isLibraryAvailable()) @@ -90,6 +102,7 @@ OFTEST(ofstd_OFCharacterEncoding_2) } } + OFTEST(ofstd_OFCharacterEncoding_3) { if (OFCharacterEncoding::isLibraryAvailable()) @@ -107,39 +120,57 @@ OFTEST(ofstd_OFCharacterEncoding_3) } } + OFTEST(ofstd_OFCharacterEncoding_4) { if (OFCharacterEncoding::isLibraryAvailable()) { OFCharacterEncoding charEnc; - // enable transliteration mode - if (charEnc.setTransliterationMode(OFTrue).good()) + OFCHECK(charEnc.selectEncoding("ISO-8859-1", "ASCII").good()); + OFString resultStr; + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::AbortTranscodingOnIllegalSequence)) + { + OFCHECK(charEnc.setConversionFlags(OFCharacterEncoding::AbortTranscodingOnIllegalSequence).good()); + OFCHECK(charEnc.convertString("J\366rg", resultStr).bad()); + } + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::DiscardIllegalSequences)) { - OFString resultStr; - OFCHECK(charEnc.selectEncoding("ISO-8859-1", "ASCII").good()); + OFCHECK(charEnc.setConversionFlags(OFCharacterEncoding::DiscardIllegalSequences).good()); + OFCHECK(charEnc.convertString("J\366rg", resultStr).good()); + OFCHECK_EQUAL(resultStr, "Jrg"); + } + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::TransliterateIllegalSequences)) + { + OFCHECK(charEnc.setConversionFlags(OFCharacterEncoding::TransliterateIllegalSequences).good()); OFCHECK(charEnc.convertString("J\366rg", resultStr).good()); OFCHECK_EQUAL(resultStr, "J\"org"); - // disable transliteration mode - charEnc.setTransliterationMode(OFFalse); - OFCHECK(charEnc.convertString("J\366rg", resultStr).bad()); } } } + OFTEST(ofstd_OFCharacterEncoding_5) { if (OFCharacterEncoding::isLibraryAvailable()) { OFCharacterEncoding charEnc; - // enable discard illegal sequence mode - if (charEnc.setDiscardIllegalSequenceMode(OFTrue).good()) + OFCHECK(charEnc.selectEncoding("ISO-8859-1", "ASCII").good()); + OFString resultStr; + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::TransliterateIllegalSequences)) { - OFString resultStr; - OFCHECK(charEnc.selectEncoding("ISO-8859-1", "ASCII").good()); + OFCHECK(charEnc.setConversionFlags(OFCharacterEncoding::TransliterateIllegalSequences).good()); + OFCHECK(charEnc.convertString("J\366rg", resultStr).good()); + OFCHECK_EQUAL(resultStr, "J\"org"); + } + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::DiscardIllegalSequences)) + { + OFCHECK(charEnc.setConversionFlags(OFCharacterEncoding::DiscardIllegalSequences).good()); OFCHECK(charEnc.convertString("J\366rg", resultStr).good()); OFCHECK_EQUAL(resultStr, "Jrg"); - // disable discard illegal sequence mode - charEnc.setDiscardIllegalSequenceMode(OFFalse); + } + if (OFCharacterEncoding::supportsConversionFlags(OFCharacterEncoding::AbortTranscodingOnIllegalSequence)) + { + OFCHECK(charEnc.setConversionFlags(OFCharacterEncoding::AbortTranscodingOnIllegalSequence).good()); OFCHECK(charEnc.convertString("J\366rg", resultStr).bad()); } } diff --git a/ofstd/tests/tests.cc b/ofstd/tests/tests.cc index b41e78d0..cd0b974f 100644 --- a/ofstd/tests/tests.cc +++ b/ofstd/tests/tests.cc @@ -78,4 +78,5 @@ OFTEST_REGISTER(ofstd_optional); OFTEST_REGISTER(ofstd_tuple); OFTEST_REGISTER(ofstd_limits); OFTEST_REGISTER(ofstd_safeSubtractAndAdd); +OFTEST_REGISTER(ofstd_variant); OFTEST_MAIN("ofstd") diff --git a/ofstd/tests/tlimits.cc b/ofstd/tests/tlimits.cc index c9107dcd..f9c35da2 100644 --- a/ofstd/tests/tlimits.cc +++ b/ofstd/tests/tlimits.cc @@ -1,12 +1,37 @@ +/* + * + * Copyright (C) 2014-2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: ofstd + * + * Author: Jan Schlamelcher + * + * Purpose: unit test for OFnumeric_limits + * + */ + #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #define OFTEST_OFSTD_ONLY #include "dcmtk/ofstd/oftest.h" +#include "dcmtk/ofstd/ofdiag.h" #include "dcmtk/ofstd/oflimits.h" #include "dcmtk/ofstd/ofstd.h" #include "dcmtk/ofstd/oftraits.h" #include "dcmtk/ofstd/ofmath.h" // for isinf and isnan +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_OVERFLOW +#include DCMTK_DIAGNOSTIC_IGNORE_IMPLICIT_CONVERSION template static void checkMinMax() { @@ -24,6 +49,7 @@ static void checkMinMax() ); OFCHECK( ( OFnumeric_limits::lowest() == OFnumeric_limits::min() ) || !OFnumeric_limits::is_integer ); } +#include DCMTK_DIAGNOSTIC_POP template static OFTypename OFenable_if::has_quiet_NaN>::type checkNaN() @@ -49,6 +75,8 @@ static OFTypename OFenable_if::has_infinity>::type checkInf } +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_OVERFLOW template static void checkLimits() { @@ -60,6 +88,7 @@ static void checkLimits() if( OFnumeric_limits::is_modulo ) OFCHECK( OFstatic_cast( T, OFnumeric_limits::max() + 1 ) == OFnumeric_limits::min() ); } +#include DCMTK_DIAGNOSTIC_POP OFTEST(ofstd_limits) { diff --git a/ofstd/tests/tofdatim.cc b/ofstd/tests/tofdatim.cc index 8d02de66..f9d648d8 100644 --- a/ofstd/tests/tofdatim.cc +++ b/ofstd/tests/tofdatim.cc @@ -126,6 +126,11 @@ OFTEST(ofstd_OFDateTime) OFCHECK_EQUAL(dateTime1, dateTime2); /* "overflow" from one day to another is currently not handled by OFDateTime */ OFCHECK(dateTime1 != OFDateTime(2001, 1, 1, 0, 15, 30, 12) /* should be equal */); + OFCHECK(dateTime1 < OFDateTime(2001, 1, 1, 0, 15, 30, 2) /* should be less */); + OFCHECK(dateTime1 <= OFDateTime(2001, 1, 1, 0, 15, 30, 12) /* should be less or equal */); + OFCHECK(OFDateTime(2000, 12, 31, 12, 15, 30, -.5) > dateTime1 /* should be greater */); + OFCHECK(OFDateTime(2000, 12, 31, 12, 15, 30, -.5) >= dateTime1 /* should be greater or equal */); + OFCHECK(dateTime1 >= dateTime1 /* should be greater or equal */); OFCHECK(dateTime1.getISOFormattedDateTime(tmpString)); OFCHECK_EQUAL(tmpString, "2000-12-31 12:15:30"); OFCHECK(dateTime1.getISOFormattedDateTime(tmpString, OFTrue /*showSeconds*/, OFTrue /*showFraction*/, diff --git a/ofstd/tests/toffile.cc b/ofstd/tests/toffile.cc index 5acac81d..dc4b2e99 100644 --- a/ofstd/tests/toffile.cc +++ b/ofstd/tests/toffile.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2002-2012, OFFIS e.V. + * Copyright (C) 2002-2017, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -343,7 +343,7 @@ OFTEST_FLAGS(ofstd_OFFile, EF_Slow) if (sizeof(offile_off_t) > 4) COUT << " - OK\n"; else COUT << " - too small, no LFS support\n"; COUT << "- size of offile_fpos_t: " << sizeof(offile_fpos_t); if (sizeof(offile_fpos_t) > 4) COUT << " - OK\n"; else COUT << " - too small, no LFS support\n"; - if ((sizeof(offile_off_t) <= 4 || sizeof(offile_fpos_t) <= 4)) + if ((sizeof(offile_off_t) <= 4) || (sizeof(offile_fpos_t) <= 4)) { OFCHECK_FAIL("No LFS support available. LFS test failed."); return; diff --git a/ofstd/tests/toption.cc b/ofstd/tests/toption.cc index 3a22fb78..f816ec58 100644 --- a/ofstd/tests/toption.cc +++ b/ofstd/tests/toption.cc @@ -1,3 +1,24 @@ +/* + * + * Copyright (C) 2014-2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: ofstd + * + * Author: Jan Schlamelcher + * + * Purpose: unit test for OFoptional + * + */ + #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #define OFTEST_OFSTD_ONLY diff --git a/ofstd/tests/tthread.cc b/ofstd/tests/tthread.cc index 630f22be..6af95e57 100644 --- a/ofstd/tests/tthread.cc +++ b/ofstd/tests/tthread.cc @@ -28,6 +28,7 @@ #include "dcmtk/ofstd/ofthread.h" #include "dcmtk/ofstd/ofstring.h" #include "dcmtk/ofstd/ofstd.h" +#include "dcmtk/ofstd/ofdiag.h" #define BAILOUT(msg) do { \ OFCHECK_FAIL(msg); \ @@ -121,11 +122,6 @@ static void mutex_test() delete mutex; } -/* Currently OFSemaphore is not working and disabled on Mac OS X. Thus, - * it is not tested on Mac OS X. - */ -#ifndef _DARWIN_C_SOURCE - static OFSemaphore *semaphore=NULL; static int sem_cond1=0; static int sem_cond2=0; @@ -216,8 +212,6 @@ static void semaphore_test() delete semaphore; } -#endif //_DARWIN_C_SOURCE - static OFReadWriteLock *rwlock=NULL; static OFMutex *mutex2=NULL; static int rw_cond1=0; @@ -228,44 +222,50 @@ static int rw_cond5=0; static int rw_cond6=0; static int rw_cond7=0; -class RWLockT1: public OFThread +class RWLockT2: public OFThread { public: - RWLockT1(): OFThread() {} - ~RWLockT1() {} + RWLockT2(): OFThread() {} + ~RWLockT2() {} virtual void run() { - if (0 == rwlock->rdlock()) + if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1; + if (0 == rwlock->wrlock()) { - rw_cond1 = 1; // acquired read lock - mutex->lock(); - mutex->unlock(); - if (0== rwlock->unlock()) rw_cond2=1; - mutex2->lock(); + rw_cond6=1; mutex2->unlock(); - if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1; - if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1; + OFStandard::milliSleep(wait_timeout); + if (0==rwlock->unlock()) rw_cond7=1; } return; } }; -class RWLockT2: public OFThread +class RWLockT1: public OFThread { +private: + RWLockT2 &t2; public: - RWLockT2(): OFThread() {} - ~RWLockT2() {} +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_SHADOW + RWLockT1(RWLockT2 &t2) : OFThread(), t2(t2) {} +#include DCMTK_DIAGNOSTIC_POP + ~RWLockT1() {} virtual void run() { - if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1; - if (0 == rwlock->wrlock()) + if (0 == rwlock->rdlock()) { - rw_cond6=1; + t2.start(); + rw_cond1 = 1; // acquired read lock + mutex->lock(); + mutex->unlock(); + if (0== rwlock->unlock()) rw_cond2=1; + mutex2->lock(); mutex2->unlock(); - OFStandard::milliSleep(wait_timeout); - if (0==rwlock->unlock()) rw_cond7=1; + if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1; + if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1; } return; } @@ -298,12 +298,9 @@ static void rwlock_test() BAILOUT(errmsg); } - RWLockT1 t1; - if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed"); - RWLockT2 t2; - if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed"); - + RWLockT1 t1(t2); + if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock/unlock test failed"); int i=0; while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout); @@ -317,7 +314,7 @@ static void rwlock_test() BAILOUT(errmsg); } OFStandard::milliSleep(wait_timeout); - if (rw_cond6) BAILOUT("read/write lock test failed"); + if (rw_cond6) BAILOUT("read/write lock/unlock test failed"); mutex->unlock(); @@ -325,56 +322,62 @@ static void rwlock_test() while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout); if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed"); - if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed"); - if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed"); + if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed"); + if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed"); delete mutex; delete mutex2; delete rwlock; } -class RWLockerT1: public OFThread +class RWLockerT2: public OFThread { public: - RWLockerT1(): OFThread() {} - ~RWLockerT1() {} + RWLockerT2(): OFThread() {} + ~RWLockerT2() {} virtual void run() { OFReadWriteLocker locker(*rwlock); - if (0 == locker.rdlock()) + if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1; + if (0 == locker.wrlock()) { - rw_cond1 = 1; // acquired read lock - mutex->lock(); - mutex->unlock(); - if (0== locker.unlock()) rw_cond2=1; - mutex2->lock(); + rw_cond6=1; mutex2->unlock(); - if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1; - if (0 == locker.rdlock()) rw_cond4=1; - // Implicit unlock() at the end + OFStandard::milliSleep(wait_timeout); + // Explicite unlock(), check if this causes one unlock() too much + if (0==locker.unlock()) rw_cond7=1; } return; } }; -class RWLockerT2: public OFThread +class RWLockerT1: public OFThread { +private: + RWLockerT2 &t2; public: - RWLockerT2(): OFThread() {} - ~RWLockerT2() {} +#include DCMTK_DIAGNOSTIC_PUSH +#include DCMTK_DIAGNOSTIC_IGNORE_SHADOW + RWLockerT1(RWLockerT2 &t2): OFThread(), t2(t2) {} +#include DCMTK_DIAGNOSTIC_POP + ~RWLockerT1() {} virtual void run() { OFReadWriteLocker locker(*rwlock); - if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1; - if (0 == locker.wrlock()) + if (0 == locker.rdlock()) { - rw_cond6=1; + t2.start(); + rw_cond1 = 1; // acquired read lock + mutex->lock(); + mutex->unlock(); + if (0== locker.unlock()) rw_cond2=1; + mutex2->lock(); mutex2->unlock(); - OFStandard::milliSleep(wait_timeout); - // Explicite unlock(), check if this causes one unlock() too much - if (0==locker.unlock()) rw_cond7=1; + if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1; + if (0 == locker.rdlock()) rw_cond4=1; + // Implicit unlock() at the end } return; } @@ -419,17 +422,14 @@ static void rwlocker_test() BAILOUT(errmsg); } - RWLockerT1 t1; - if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed"); - RWLockerT2 t2; - if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed"); - + RWLockerT1 t1(t2); + if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock test failed"); int i=0; while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout); - if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock/unlock test failed"); + if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock test failed"); condition = rwlockLocker.unlock(); if (condition) { @@ -444,10 +444,10 @@ static void rwlocker_test() i=0; while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout); - if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed"); + if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock test failed"); - if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed"); - if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed"); + if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock test failed"); + if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock test failed"); delete mutex; delete mutex2; @@ -576,9 +576,7 @@ OFTEST(ofstd_thread) { // This makes sure tests are executed in the expected order mutex_test(); -#ifndef _DARWIN_C_SOURCE semaphore_test(); // may assume that mutexes work correctly -#endif rwlock_test(); // may assume that mutexes and semaphores work correctly rwlocker_test(); // may assume that mutexes, semaphores and read/write locks work correctly tsdata_test(); diff --git a/ofstd/tests/ttuple.cc b/ofstd/tests/ttuple.cc index df7e3639..d4d4c381 100644 --- a/ofstd/tests/ttuple.cc +++ b/ofstd/tests/ttuple.cc @@ -1,3 +1,24 @@ +/* + * + * Copyright (C) 2014-2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: ofstd + * + * Author: Jan Schlamelcher + * + * Purpose: unit test for OFtuple + * + */ + // Disable some warnings. // We're testing if a tuple containing floats can be initialized from a tuple of // ints, which is required by the standard. But this gives precision warnings diff --git a/ofstd/tests/tvariant.cc b/ofstd/tests/tvariant.cc new file mode 100644 index 00000000..5040a206 --- /dev/null +++ b/ofstd/tests/tvariant.cc @@ -0,0 +1,131 @@ +/* + * + * Copyright (C) 2016-2017, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: ofstd + * + * Author: Jan Schlamelcher + * + * Purpose: unit test for OFvariant + * + */ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#define OFTEST_OFSTD_ONLY +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/ofstd/ofvriant.h" + +struct int_visitor +{ + void operator()( double d ) + { + // Avoid compiler warning on unused parameter + (void)d; + OFCHECK_FAIL( "wrong alternative selected" ); + } + + void operator()( int i ) + { + // Avoid compiler warning on unused parameter + (void)i; + OFCHECK( i == 42 ); + } + + void operator()( char c ) + { + // Avoid compiler warning on unused parameter + (void)c; + OFCHECK_FAIL( "wrong alternative selected" ); + } +}; + +struct double_visitor +{ + bool operator()( double d ) + { + // Avoid compiler warning on unused parameter + (void)d; + return d == 27.912456f; + } + + bool operator()( int i ) + { + // Avoid compiler warning on unused parameter + (void)i; + OFCHECK_FAIL( "wrong alternative selected" ); + return false; + } + + bool operator()( char c ) + { + // Avoid compiler warning on unused parameter + (void)c; + OFCHECK_FAIL( "wrong alternative selected" ); + return false; + } +}; + +OFTEST(ofstd_variant) +{ + // copy construction from alternative + OFvariant v0( true ); + + // default construction + OFvariant v1; + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) ); + OFCHECK( OFget( &v1 ) ); + + // alternative changing assignment + v0 = 3.1415f; + + // same alternative assignment + v1 = 7; + + OFCHECK( !OFget( &v0 ) ); + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 3.1415f ); + OFCHECK( OFget( &v1 ) ); + OFCHECK( *OFget( &v1 ) == 7 ); + + // alternative changing assignment and copy construction + OFvariant v2( v0 = v1 ); + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 7 ); + OFCHECK( OFget( &v1 ) ); + OFCHECK( *OFget( &v1 ) == 7 ); + OFCHECK( OFget( &v2 ) ); + OFCHECK( *OFget( &v2 ) == 7 ); + + // same alternative assignment + v0 = 42; + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 42 ); + + // same alternative assignment + v1 = v0; + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 42 ); + OFCHECK( OFget( &v1 ) ); + OFCHECK( *OFget( &v1 ) == 42 ); + + v2 = 27.912456f; + + // test visitation + OFvisit( int_visitor(), v0 ); + OFCHECK( OFvisit( double_visitor(), const_cast&>( v2 ) ) ); +} -- 2.30.2